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、调用外部方法:

图一、调用外部dll方法

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

图二、获取物理地址的方法

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

图三、Ping方法

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

图四、WinForm窗体button事件

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

图五、ping失败效果图
图六、ping成功并获取物理地址
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,915评论 18 139
  • 协议基础 协议就是计算机之间通过网络实现通信时实现所达成的一种“约定”,这种约定使得那些由不同厂商的设备,不同的C...
    d9fc24a0c9a9阅读 2,397评论 0 6
  • 网络层简介 1. 概念 为解决经由多条链路的交付问题,从而设计了网络层。其主要负责主机到主机的交付,并且在分组经过...
    顾慎为阅读 3,165评论 0 0
  • LT-0807,2018.03.11翻译,@成都 声明 本文是一篇关于TCP/IP协议组件的RFC,聚焦于一个IP...
    摩诃婆罗多阅读 4,151评论 1 5
  • 纠缠 爱上一个人需要多长时间?有人只需要几秒。当你为他(她)惊魂一瞥的那一眼,你的心就开始颤动,仿佛开出了一朵灿烂...
    夏天free阅读 703评论 4 2