答案:在C#中检查网络连接状态常用System.Net.NetworkInformation命名空间下的Ping和NetworkInterface类。1. 使用Ping向8.8.8.8发送请求,判断外网连通性;2. 调用NetworkInterface.GetIsNetworkAvailable()检测本地网络接口是否启用;3. 综合两者判断互联网可用性,先确认本地连接再测试外网访问;4. 建议避免频繁调用,使用稳定IP如8.8.8.8,并考虑ICMP被禁用时采用HTTP请求备用方案。多数场景下组合前两种方法即可满足需求。

在 C# 中检查网络连接状态,常用的方法是通过 System.Net.NetworkInformation 命名空间中的类来判断网络是否可用。最常用的类是 Ping 和 NetworkInterface。下面介绍几种实用的检查方式。
1. 使用 Ping 检查外部网络连通性
通过向一个可靠的远程主机(如 Google 的 8.8.8.8 或百度)发送 ICMP 请求,判断网络是否通畅。
using System;using System.Net.NetworkInformation;bool IsConnectedByPing(){try{using (Ping ping = new Ping()){// 向 8.8.8.8 发送 ping 请求PingReply reply = ping.Send("8.8.8.8", 3000); // 超时 3 秒return reply.Status == IPStatus.Success;}}catch{return false;}}
这个方法能检测是否可以访问外网,适合判断是否有实际的互联网连接。
2. 检查本地网络接口状态
使用 NetworkInterface.GetIsNetworkAvailable() 方法快速判断本机是否有任何网络连接(包括局域网)。
bool IsNetworkAvailable(){ return NetworkInterface.GetIsNetworkAvailable();}
该方法返回 true 表示至少有一个网络适配器处于启用并连接状态,但不保证能访问互联网。
3. 综合判断:网络可用且能访问外网
结合上面两种方法,实现更准确的网络状态判断:
bool IsInternetAvailable(){ // 先判断本地是否有网络 if (!NetworkInterface.GetIsNetworkAvailable()) return false;// 再尝试 ping 外部地址try{ using (Ping ping = new Ping()) { PingReply reply = ping.Send("www.baidu.com", 3000); return reply.Status == IPStatus.Success; }}catch{ return false;}
}
这种方法更可靠,既检查了物理连接,也验证了外网可达性。
4. 注意事项与建议
避免频繁调用 Ping,可设置间隔时间(如每 5-10 秒检测一次)。选择稳定的目标地址,如 8.8.8.8、114.114.114.114 或常用网站域名。DNS 解析失败可能导致域名 ping 不通,建议优先使用 IP 地址测试。某些网络环境可能禁用了 ICMP 协议,导致 Ping 失败,需结合 HTTP 请求等备用方案。
基本上就这些。根据实际需求选择合适的方法,多数情况下组合使用 GetIsNetworkAvailable 和 Ping 就足够了。
以上就是C# 怎么检查网络连接状态_C# 网络连接状态检查方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1441819.html
微信扫一扫
支付宝扫一扫