public PingReply PingTest(string ip)
{
PingReply reply = null;
Ping pingSender = null;
try
{
pingSender = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = true;
string data = "hello world";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 1000;
IPAddress ipa = IPAddress.Parse(ip);
PingReply replyPing = pingSender.Send(ip, timeout, buffer, options);
reply = replyPing;
}
catch (Exception ex)
{
reply = null;
}
finally
{
pingSender.Dispose();
}
return reply;
}
public String GetIPGlobal()
{
//得到本机Internet协议IPV4的统计数据;
IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
IPGlobalStatistics ipstat = properties.GetIPv4GlobalStatistics();
Console.WriteLine(" Inbound Packet Data:");
//获取收到的 Internet 协议 (IP) 数据包数
Console.WriteLine(" Received ............................ : {0}", ipstat.ReceivedPackets);
//获取转发的 Internet 协议 (IP) 数据包数
Console.WriteLine(" Forwarded ........................... : {0}", ipstat.ReceivedPacketsForwarded);
//获取传送的 Internet 协议(IP) 数据包数
Console.WriteLine(" Delivered ........................... : {0}", ipstat.ReceivedPacketsDelivered);
//获取已收到但被丢弃的 Internet 协议 (IP) 数据包数
Console.WriteLine(" Discarded ........................... : {0}", ipstat.ReceivedPacketsDiscarded);
double percent = (double)ipstat.ReceivedPacketsDiscarded / ipstat.ReceivedPacketsDelivered;
string packetsPercent = percent.ToString("P");
return packetsPercent;
}
PingReply reply = sysInfo.PingTest(serverUrl);
if (reply != null)
{
if (reply.Status == IPStatus.Success)
{
txtNetStatus.Text = "延时 " + reply.RoundtripTime + "ms" + " 丢包率:" + sysInfo.GetIPGlobal();
}
else
{
txtNetStatus.Text = "连接服务器超时";
}
}
else
{
txtNetStatus.Text = "连接服务器超时";
}