【转】 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中 ...
随机推荐
- C语言:延时1秒
使用sleep()函数将程序阻塞,头文件在windows系统和linux系统下是不一样的windowsSleep()//第一个字母大写#include <windows.h>函数原型voi ...
- [刘阳Java]_CSS鼠标悬停
小白在学习前端技术时候,一定会在刚开始的时候学习CSS2和CSS3的相关知识.这篇内容给大家介绍一个CSS鼠标悬停的效果.大家可以先看下面的效果图,然后我们在说一下实现的效果要求吧 上图效果非常简单和 ...
- LeetCode 778. Swim in Rising Water
题目链接:https://leetcode.com/problems/swim-in-rising-water/ 题意:已知一个n*n的网格,初始时的位置为(0,0),目标位置为(n-1,n-1),且 ...
- MyEclipse无法打开jsp文件(打开是空白的),但是可以打开java文件
转载: 解决MyEclipse使用时打开JSP发生"An error has occurred,See error log for more details"错误的解决方法这个问题 ...
- python之数据驱动ddt操作(方法一)
下载ddt并安装 Pip install ddt 或者官网下载安装 http://ddt.readthedocs.io/en/latest/ https://github.com/txels/ddt ...
- Dijkstra和堆优化
Dijkstra算法 由于我之前一直记的迪杰斯特拉的翻译导致我把dijkstra写成了dijstra--所以下文#define dijstra dijkstra 我以后叫她迪杰克斯歘! Dijskra ...
- 前端基础div(六)
实例 文档中的一个部分会显示为绿色: <div style="color:#00FF00"> <h3>This is a header</h3> ...
- 大数据学习(16)—— HBase环境搭建和基本操作
部署规划 HBase全称叫Hadoop Database,它的数据存储在HDFS上.我们的实验环境依然基于上个主题Hive的配置,参考大数据学习(11)-- Hive元数据服务模式搭建. 在此基础上, ...
- QT-可拖拽可编辑的多控件ListView
目标 结合前面的2篇文章, 继续升级QML版本的ListView: 又要拖拽, 又要可编辑, 还得支持多个控件. 循序渐进 本文基于前一篇的基础: Qt-可编辑的ListView 要循序渐进的学习. ...
- 【java基础】枚举
目录 枚举的定义 枚举的使用 原理 枚举的扩展 单例模式 避免反射攻击 反序列化 策略模式 总结 枚举的定义 public enum Color { Red,Blue,Green; } 枚举的使用 C ...