C#中判断Ip地址能否ping通
有的时候,哪怕ip地址的格式是正确的,但是也有可能是一个不可到达的ip地址或者不在同一个子网,这种时候 如果不做处理,很有可能会导致程序的连接出现问题从而崩溃。
请尝试下面的代码:
1 static bool PingIPAddress(string ipAddress, string targetIpAddress) 2 { 3 try 4 { 5 // 获取本机的所有网络接口 6 NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces(); 7 8 // 查找具有指定 IP 地址的网络接口 9 NetworkInterface networkInterface = networkInterfaces.FirstOrDefault( 10 nic => 11 { 12 IPInterfaceProperties props = nic.GetIPProperties(); 13 return props.UnicastAddresses.Any(addr => addr.Address.ToString() == ipAddress); 14 }); 15 16 if (networkInterface == null) 17 { 18 Console.WriteLine("指定的本机IP地址未与任何网络接口关联。"); 19 return false; 20 } 21 22 // 创建 Ping 实例 23 using (Ping ping = new Ping()) 24 { 25 PingReply reply = ping.Send(targetIpAddress, 1000); // 1000 毫秒超时时间 26 27 if (reply.Status == IPStatus.Success) 28 { 29 Console.WriteLine("Ping 成功。"); 30 return true; 31 } 32 else 33 { 34 Console.WriteLine($"Ping 失败: {reply.Status.ToString()}"); 35 return false; 36 } 37 } 38 } 39 catch (Exception ex) 40 { 41 Console.WriteLine($"发生异常: {ex.Message}"); 42 return false; 43 } 44 }
调用方法:
1 static void Main(string[] args) 2 { 3 string localIPAddress = "本机IP地址"; 4 string targetIPAddress = "目标IP地址"; 5 6 bool result = PingIPAddress(localIPAddress, targetIPAddress); 7 Console.WriteLine($"是否能 ping 通: {result}"); 8 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)