C#/.Net 如何ping指定ip address,并获取MAC物理地址

一、如何ping指定ip address?

1、需要命名空间:System.Net.NetworkInformation

2、Ping ping=new Ping();//新建Ping类对象

      PingReplay pingReplay=ping.Send("192.168.1.2", 1000)://通过ping对象Send方法获取pingRelay应答状态

      bool pingSuccess=false;//ping通标志位

      pingSuccess=pingReplay.Status==IPStatus.Success?true:false;//得到是否ping通结果

二、如何获取mac物理地址?

1、需要命名空间:System.Runtime.InteropServices——调用外部iphlpapi.dll,  System.Net——提供网际协议IPAddress类;

2、IPAddress _Address;//实例化一个ipAddress类

if (!IPAddress.TryParse(p_Id, out _Address)) return "";//判断目标ip地址是否有效

uint DestIP = System.BitConverter.ToUInt32(_Address.GetAddressBytes(), 0);//目标地址赋值

ulong pMacAddr = 0;//初始化mac物理地址

uint PhyAddrLen = 6;//指定物理地址长度

uint error_code = ExternCall.SendARP(DestIP, 0, ref pMacAddr, ref PhyAddrLen);//调用SendARP方法

byte[] _Bytes1 = BitConverter.GetBytes(pMacAddr);//ulong转换为byte数组

string macAddress= BitConverter.ToString(_Bytes1, 0, 6).Replace('-', ':');//格式替换,最终获取MAC物理地址

三、两者综合例子如下:

1、调用外部方法:

C#/.Net 如何ping指定ip address,并获取MAC物理地址_第1张图片
图一、调用外部dll方法

2、获取MAC物理地址方法:

C#/.Net 如何ping指定ip address,并获取MAC物理地址_第2张图片
图二、获取物理地址的方法

3、Ping方法综合,返回是否ping通状态以及MAC物理地址:

C#/.Net 如何ping指定ip address,并获取MAC物理地址_第3张图片
图三、Ping方法

4、把1、2、3写为一个类(ipAddress类)Windows窗体应用程序代码:

C#/.Net 如何ping指定ip address,并获取MAC物理地址_第4张图片
图四、WinForm窗体button事件

5、效果图(请确保目标IP地址与本机为同一网段,既若目标主机ip为192.168.1.xx,你本机也应修改为192.168.1.--,--不能等于xx)

C#/.Net 如何ping指定ip address,并获取MAC物理地址_第5张图片
图五、ping失败效果图
C#/.Net 如何ping指定ip address,并获取MAC物理地址_第6张图片
图六、ping成功并获取物理地址

你可能感兴趣的:(C#/.Net 如何ping指定ip address,并获取MAC物理地址)