繁体   English   中英

如何使用其IP地址获取另一台设备的MAC地址

[英]How to get the MAC Address of another device using its IP address

我想使用连接到同一网络的IP地址获取另一台设备的MAC地址。 我有设备的IP地址。

我需要一种逻辑,而不是使用iphlpapi.dll或通过使用arp -a ipaddress在C#中运行命令提示符。

必须以某种形式使用地址解析协议(ARP),因为它旨在作为从其ip获取设备的物理地址的方法,但是您已经排除了从命令行使用它的可能性。 您可能能够从系统路由表中获取先前arp的结果。

或者,您使用pcap包装器并将您自己的arp请求发送到设备,然后它将以其MAC地址进行响应

要从同一网络的另一台计算机获取MAC地址,您需要发送具有特定IP地址的ARP请求数据包,例如:您想从IP(192.168.1.20)知道MAC地址,因此需要创建原始数据包,如下所示:

Ethernet: Destination: FF:FF:FF:FF:FF:FF (broadcast address) Source: Your current MAC Address EthType: 0x0806 (ARP Type)

ARP (Ethernet Payload) Hardware Type: 1 (Ethernet) Protocol Type: 0x0800 (IP) Hardware Size: 6 Protocol Size: 4 Opcode: 1 (ARP Request) Sender MAC Address: Your current MAC Address (Same as at Ethernet part) Sender Protocol Address: Your current IP Address Target MAC Address: 00:00:00:00:00:00 (because you don't know target MAC Address yet) Target Protocol Address: 192.168.1.20 (The IP that you want to know about the Mac address)

如果目标接收到此数据包,则目标将使用包含MAC地址的ARP答复数据包进行答复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM