首页 > 编程语言 >C#中判断Ip地址能否ping通

C#中判断Ip地址能否ping通

时间:2024-02-21 15:33:06浏览次数:32  
标签:return string C# Ip Ping WriteLine Console 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     }

 

标签:return,string,C#,Ip,Ping,WriteLine,Console,ping
From: https://www.cnblogs.com/AnYanaha/p/18025311

相关文章

  • 记录一次如何给openai (chatgpt api 调用)充值的经历
    网上有很多通过支付宝充值apple礼品卡的教程,能成功充值chatgpt-plus,我也成功充值了。但这个账号不能在自己的服务中调用api,需要额外充值,本次是记录如何给openaiapi 接口调用充值https://platform.openai.com/account/billing/payment-methods  用fomepay成功充值的经历......
  • Linux文件权限管理 chmod命令
    chmod命令用于改变Unix/linux系统中文件或目录的访问权限。这些权限决定了哪些用户可以对文件或目录进行读取,写入或执行操作。chmod命令有两种主要的用法:符号模式(symbolicmode)和八进制模式(octalmode)1.符号模式(Symbolic Mode)符号模式允许你使用u(用户,即文件所有者),g(组,即文件......
  • 记录conda安装gdal问题
    使用conda安装gdal过程中遇到了很多坑,在此记录一下,首先gdal使用时会调用其它很多三方包,为了彼此之间不相互影响,我先创建了新的虚拟环境,在新的虚拟环境中安装gdal。1、离线安装网上看到好多建议离线安装的,因此首先找了一下离线包,很多旧的链接已经失效了,我在https://github.com/cg......
  • 使用html2Canvas截图网页时,网页存在图片报错:Tainted canvases may not be exported
     这是因为图片跨域产生的报错,看有的说法可以把所有图片进行允许跨域配置,但是比较麻烦。html2canvas有参数可以配置是否允许跨域 参数名称类型默认值描述allowTaintbooleanfalseWhethertoallowcross-originimagestotaintthecanvas---允许跨域background......
  • ES6中的class浅谈
    在ES6中引入了类(class)的概念,让JavaScript更加接近传统面向对象编程语言。类提供了一种用于创建对象的模板,其中包含了属性和方法的定义。1.定义类使用class关键字可以定义一个类,类名通常以大写字母开头。 1classPerson{234constructor(name,age,work......
  • const、static使用
    关键字使用1.constconst关键字是一个修饰符,所谓“修饰符”,就是在编译器进行编译的过程中,给编译器一些“要求”或“提示”,但修饰符本身,并不产生任何实际代码。就const修饰符而言,它用来告诉编译器,被修饰的这些东西,具有“只读”的特点。在编译的过程中,一旦我们的代码试图去改变......
  • CentOS8-pacemaker+corosync高可用部署
    部署pacemakeryuminstallpacemakerpcscorosyncfence-agentsresource-agents启动pcs服务systemctlenablepcsdsystemctlstart pcsd修改集群管理员hacluster(默认生成)密码echoxmcloud_pass |passwd--stdinhaclusterxmcmp01节点,认证配置pcshostauthxmcmp0......
  • oracle查看某session ip
    先创建个触发器获取ipcreateorreplacetriggeron_logon_triggerafterlogonondatabasebegindbms_application_info.set_client_info(sys_context('userenv','ip_address'));end;可以使用下方语句查看session的ipselect/*+PARALLEL(4)*/a.inst_id,......
  • windows 通过 bat 快速修改 ip 地址
    先将以下内容填写到一个txt文件中,然后另存为修改网络IP.bat文件编码选择ANSI否则会出现乱码。@echooffrem强制获取管理员权限%1mshtavbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c%~s0::","","runas",1)(window.close)&&am......
  • 世微AP5192 LED恒流IC 摩托电动车货车 12-80V 1.5A 有极输入 电源驱动芯片
    产品描述    AP5192是一款PWM工作模式,效率高、简单、内置功率MOS管,适用于4.5-100V输入的高精度降压LED恒流驱动芯片。电流1.5A。AP5192可实现线性调光和PWM调光,线性调光脚有效电压范围0.55-2.6V.AP5192工作频率可以通过RT外部电阻编程来设定,同时内置抖频电路,可以降低......