C# 中Ping 网络连通性检测实战
C# 中Ping 网络连通性检测实战
- 一、C# 中的 Ping 是什么
- 二、推荐使用场景
- 三、Ping使用示例
- 四、Ping 请求方法说明
-
- Send 方法: 同步发送 Ping 请求
- 参数说明
- 五、返回值PingReply属性说明
-
- Status:Ping 操作的结果状态,判断 “通不通” 的核心
- RoundtripTime:用于评估网络延迟情况
- PingOptions:用于配置Ping数据包的传输选项
- 六、避坑指南、注意事项
C# 中Ping 网络连通性检测实战
网络编程、系统监控或自动化脚本开发中,常常检测某些主机或设备的网络连通性。最常用的方式是 Internet 控制消息协议(ICMP)的 Ping
命令,判断目标 IP 是否可达。C# 中.NET 框架直接提供了 Ping
类,不用自己封装底层协议
一、C# 中的 Ping 是什么
Ping 是 .NET自带的 “网络连通性探测器”,用于检测目标主机是否可达。工作原理:
- 向目标主机发送 ICMP 回显请求(即“Ping”)
- 等待目标返回 “回显响应”
- 根据响应结果判断网络的连通性、网络延迟和响应状态等细节
Ping基于网络层操作,不依赖HTTP、TCP 等高层协议,检测 “基础网络通不通” 特别可靠,而且轻量、响应快速
二、推荐使用场景
- 网络连通性检测:如检测服务器、路由器等设备是否在线。可自动化
Ping
操作,定期检测关键设备的网络状态,实现自动警示 - 网络故障排查:用户连不上系统时先
Ping
目标服务器,失败说明网络链路不通,需盘查网线连接、路由、防火墙设置等 - 网络性能测试:多次
Ping
同一IP,统计平均往返时间,评估网络的延迟情况
三、Ping使用示例
- 适合控制台脚本、简单工具,代码直观
- 缺点: “阻塞” 当前线程,直到拿到结果或超时
using System;
using System.Net.NetworkInformation;namespace PingDemo
{internal class Program{static void Main(