有的时候,哪怕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 }
标签:return,string,C#,Ip,Ping,WriteLine,Console,ping From: https://www.cnblogs.com/AnYanaha/p/18025311