C# Ping网络检测网络通断

514 阅读1分钟

C# Ping网络检测网络通断

 class Program
    {
        static async Task Main(string[] args)
        {
            bool ret = await PingNet("192.168.2.205");
            Console.ReadKey();
        }
        /// <summary>
        /// ping网络,检测网络通断
        /// </summary>
        /// <param name="ip">ip地址</param>
        /// <param name="num">ping的次数</param>
        /// <param name="timeout">每次ping的超时</param>
        /// <returns>bool true:通 false:不通</returns>
        static async Task<bool> PingNet(string ip, int num = 10, int timeout = 2000)
        {
            List<bool> pingRets = new List<bool>();     //ping 结果
            Ping pingSender = new Ping();
            for (int i = 0; i < num; i++)
            {
                PingReply replyRet = await pingSender.SendPingAsync(ip, timeout);
                if (replyRet.Status == IPStatus.Success)
                    pingRets.Add(true);
                else
                    pingRets.Add(false);
                Thread.Sleep(50);
            }
            if (pingRets.Contains(true))
                return true;
            else
                return false;
        }

参考

  1. (6条消息) C#-异步Ping检查网络通断_guo1wu3shi4的专栏-CSDN博客