【转】 C#中检查网络是否连通的二种方法

2 using System.Collections.Generic;
3 using System.Text;
4 //方法一
5 using System.Runtime;
6 using System.Runtime.InteropServices;
7 //方法二 Net2.0新增类库
8 using System.Net.NetworkInformation;
9
10 namespace InternetCheck
11 {
12 public class Internet
13 {
14 [DllImport("wininet.dll")]
15 private extern static bool InternetGetConnectedState(int Description, int ReservedValue);
16
17 #region 方法一
18 /// <summary>
19 /// 用于检查网络是否可以连接互联网,true表示连接成功,false表示连接失败
20 /// </summary>
21 /// <returns></returns>
22 public static bool IsConnectInternet()
23 {
24 int Description = 0;
25 return InternetGetConnectedState(Description, 0);
26 }
27 #endregion
28
29 #region 方法二
30 /// <summary>
31 /// 用于检查IP地址或域名是否可以使用TCP/IP协议访问(使用Ping命令),true表示Ping成功,false表示Ping失败
32 /// </summary>
33 /// <param name="strIpOrDName">输入参数,表示IP地址或域名</param>
34 /// <returns></returns>
35 public static bool PingIpOrDomainName(string strIpOrDName)
36 {
37 try
38 {
39 Ping objPingSender = new Ping();
40 PingOptions objPinOptions = new PingOptions();
41 objPinOptions.DontFragment = true;
42 string data = "";
43 byte[] buffer = Encoding.UTF8.GetBytes(data);
44 int intTimeout = 120;
45 PingReply objPinReply = objPingSender.Send(strIpOrDName, intTimeout, buffer, objPinOptions);
46 string strInfo = objPinReply.Status.ToString();
47 if (strInfo == "Success")
48 {
49 return true;
50 }
51 else
52 {
53 return false;
54 }
55 }
56 catch (Exception)
57 {
58 return false;
59 }
60 }
61 #endregion
62 }
63 }
64 using System;
65 using System.Collections.Generic;
66 using System.Text;
67 //方法一
68 using System.Runtime;
69 using System.Runtime.InteropServices;
70 //方法二 Net2.0新增类库
71 using System.Net.NetworkInformation;
72
73 namespace InternetCheck
74 {
75 public class Internet
76 {
77 [DllImport("wininet.dll")]
78 private extern static bool InternetGetConnectedState(int Description, int ReservedValue);
79
80 #region 方法一
81 /// <summary>
82 /// 用于检查网络是否可以连接互联网,true表示连接成功,false表示连接失败
83 /// </summary>
84 /// <returns></returns>
85 public static bool IsConnectInternet()
86 {
87 int Description = 0;
88 return InternetGetConnectedState(Description, 0);
89 }
90 #endregion
91
92 #region 方法二
93 /// <summary>
94 /// 用于检查IP地址或域名是否可以使用TCP/IP协议访问(使用Ping命令),true表示Ping成功,false表示Ping失败
95 /// </summary>
96 /// <param name="strIpOrDName">输入参数,表示IP地址或域名</param>
97 /// <returns></returns>
98 public static bool PingIpOrDomainName(string strIpOrDName)
99 {
100 try
101 {
102 Ping objPingSender = new Ping();
103 PingOptions objPinOptions = new PingOptions();
104 objPinOptions.DontFragment = true;
105 string data = "";
106 byte[] buffer = Encoding.UTF8.GetBytes(data);
107 int intTimeout = 120;
108 PingReply objPinReply = objPingSender.Send(strIpOrDName, intTimeout, buffer, objPinOptions);
109 string strInfo = objPinReply.Status.ToString();
110 if (strInfo == "Success")
111 {
112 return true;
113 }
114 else
115 {
116 return false;
117 }
118 }
119 catch (Exception)
120 {
121 return false;
122 }
123 }
124 #endregion
125 }
126 }
127
128
129 // 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yhrch/archive/2007/11/05/1867546.aspx

【转】 C#中检查网络是否连通的二种方法的更多相关文章
- C#中检查网络是否连通的二种方法
using System; 2 using System.Collections.Generic; 3 using System.Text; 4 //方法一 5 using System.Ru ...
- Oracle 11g 安装过程中“检查网络配置要求 未执行”解决方法
正在检查网络配置要求... 检查完成.此次检查的总体结果为: 未执行 网上查了一下,很多朋友都遇到这个问题而无从下手,其实解决起来很容易的. 只需要在 Windows XP 中安装 Microsoft ...
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- 在Java Web程序中使用监听器可以通过以下两种方法
之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响 ...
- linux中删除文件内空白行的几种方法。
linux中删除文件内空白行的几种方法 有时你可能需要在 Linux 中删除某个文件中的空行.如果是的,你可以使用下面方法中的其中一个.有很多方法可以做到,但我在这里只是列举一些简单的方法. 你可能已 ...
- (转载)Java中如何遍历Map对象的4种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- 在MySQL中设置事务隔离级别有2种方法:
在MySQL中设置事务隔离级别有2种方法: 1 在my.cnf中设置,在mysqld选项中如下设置 [mysqld] transaction-isolation = READ-COMMITTED 2 ...
- linux中快速清空文件内容的几种方法
这篇文章主要介绍了linux中快速清空文件内容的几种方法,需要的朋友可以参考下 $ : > filename $ > filename $ echo "" > f ...
- (转)在网页中JS函数自动执行常用三种方法
原文:http://blog.sina.com.cn/s/blog_6f6b4c3c0100nxx8.html 在网页中JS函数自动执行常用三种方法 在网页中JS函数自动执行常用三种方法 在HTML中 ...
随机推荐
- 分享一份550多个Linux命令的文档,按照命令首字母索引排序
输入一个命令,让我给你一个关于它的完美解释! 众所周知,Linux命令是IT人必须掌握的一个技能,有了它,我们可以部署和维护各种各样的服务和应用.但是,大部分的Linux命令我们不一定记得住,而别是各 ...
- 「AGC021E」Ball Eat Chameleons
「AGC021E」Ball Eat Chameleons 考虑如何判定一个合法的颜色序列. 不妨设颜色序列中有 \(R\) 个红球,\(B\) 个蓝球,所以有 \(R+B=k\). 考虑分情况讨论: ...
- 7.Java数组
一.数组概念(最简单的数据结构) 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成. 其中每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问 ...
- python import 导入两个模块同时有同一名称的方法如何调用 ?
from moudule import *(这种方法不推荐) 一般不推荐使用"from 模块 import"这种语法导入指定模块内的所有成员,因为它存在潜在的风险. 比如同时导入 ...
- 基于IDEA的JAVA开发[第一集]:在Linux上安装IDEA
1,因为买了荣耀的magicbook pro 锐龙版,系统是Linux,以后打算直接在Linux上开发.本来熟悉Myeclipse,下载了Myeclipse2017 for Linux,但是安装中出现 ...
- Java多线程(下)
线程同步 当多个线程访问一个对象时,有可能会发生污读,即读取到未及时更新的数据,这个时候就需要线程同步. 线程同步: 即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线 ...
- 「干货」面试官问我如何快速搜索10万个矩形?——我说RBush
「干货」面试官问我如何快速搜索10万个矩形?--我说RBUSH 前言 亲爱的coder们,我又来了,一个喜欢图形的程序员,前几篇文章一直都在教大家怎么画地图.画折线图.画烟花,难道图形就是这样嘛,当 ...
- PAT乙级:1064 朋友数 (20分)
PAT乙级:1064 朋友数 (20分) 题干 如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号".例如 123 和 ...
- odoo ORM中的filed的关系映射的使用详解1
前言 前面我们详细讲解了odoo ORM中fields中的常见属性的使用,根据不同的属性可以对字段进行不同的限制操作,比如readonly只读,store是否存储到数据库.今天我们继续研究ORM中的关 ...
- 论文笔记:(2019CVPR)PointConv: Deep Convolutional Networks on 3D Point Clouds
目录 摘要 一.前言 1.1直接获取3D数据的传感器 1.2为什么用3D数据 1.3目前遇到的困难 1.4现有的解决方法及存在的问题 二.本文idea 2.1 idea来源 2.2 初始思路 2.3 ...