WPF ping测试网络状态

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 = "连接服务器超时";
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BeanGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值