• 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 = "连接服务器超时";
                    }
    

      

  • 相关阅读:
    js笔记——js里var与变量提升
    微信授权机制
    HTML5的sessionStorage和localStorage
    博客园主题响应式布局
    [转]五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
    搭建jekyll博客
    Oracle VM VirtualBox技巧
    jQuery实现全选、全不选、反选
    js里slice,substr和substring的区别
    js里cookie操作
  • 原文地址:https://www.cnblogs.com/candyzhmm/p/12713863.html
Copyright © 2020-2023  润新知