C# 中要怎么检测本机 是否 通内外网 PIng。

解决方案 »

  1.   

    ping www.baidu.com百度就是干这个用的
      

  2.   

          TcpClient tcp = new TcpClient();
                try
                ...{
                    tcp.Client.Connect("www.baidu.com", 80);//尝试连接外网的一个地址;
                }
    catch
    ...{
    //catch块
    }
    finally
    ...{
    if(tcp.Connected)
    ...{
    //代码
    }
    }还有一种方法是通过API调用Ping程序,也非常麻烦,需要导入Dll,还要对返的结果做出分析,而且程序运行时会弹出CMD窗体,非常不友好.其实我们可以利用C#中的Ping类来实现这一功能:首先引入 using System.Net.NetworkInformation;命名空间声明一个Ping对像:Ping myPing = new Ping();设置Ping选项PingOptions myOptions = new PingOptions();MyOptions.DontFragment = true;//允许数据分段,还有一个TTL选项//创建一个32B的缓冲区string data = "abcdefghijklmnopqrstuvwxy123456";byte[] buff = Encoding.ASCII.GetBytes(data);Ping回复结果:PingReply myPingReply = myPing.Send("远程IP",超时时间,缓冲大小,Ping选项);最后判断一下是否功功即可:if(myPingReply.Status == IPStatus.Success){//your code}