zoukankan      html  css  js  c++  java
  • 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 = "连接服务器超时";
                    }
    

      

  • 相关阅读:
    转载:对不起,我是程序员
    [VB6]支持UTF文本文件访问的模块 支持UTF8无BOM格式编码自动识别
    Do it. Do it right. Do it right now!
    TortoiseGit密钥的配置
    GIT服务器配置
    Linux下的帧缓冲lcd应用编程及Framebuffer驱动程序模型
    Linux设备驱动程序学习(19)-USB 驱动程序(四)
    是什么浪费了我的上网时间?
    【转】处理wording的一些参考
    ElementUI学习之rules详解
  • 原文地址:https://www.cnblogs.com/candyzhmm/p/12713863.html
Copyright © 2011-2022 走看看