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
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力