C#判断当前的网络是否可用(ping)

2021-11-12  乐帮网

c# netcore

在开发中遇到获取网络状态的需求。这个时候我们可以选择使用ping命令测试固定的网络址来判断,示例代码如下:

 [Test]
        public void NetPingTest()
        {
            var ping = new System.Net.NetworkInformation.Ping();
            var res = ping.Send("www.baidu.com");
            if (res.Status != System.Net.NetworkInformation.IPStatus.Success)
            {
                Console.WriteLine("网络异常");
            }
            else
            {
                Console.WriteLine("网络正常");
            }
        }

一个简单的实现就完成了。但是ping 可能有个别时候会失败,这个也正常需要考虑到。同时我们可以多选几组地址如下:

 [Test]
        public void NetPingTest2()
        {
            string[] urls = new string[] { "www.baidu.com", "csdn.net", "www.cnblogs.com" };
            var ping = new System.Net.NetworkInformation.Ping();
            int reachable = 0;
            foreach (string url in urls)
            {
                var res = ping.Send(url);
                if (res.Status == System.Net.NetworkInformation.IPStatus.Success)
                    reachable++;
            }

            if (reachable==urls.Length)
            {
                Console.WriteLine("网络异常");
            }
            else
            {
                Console.WriteLine("网络正常");
            }
        }

或者设置一个阀值,或者测试自己指定的服务器,都取决于您的业务。
lebang.cn

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力