如何使用其IP地址获取另一台设备的MAC地址
本文关键字:地址 一台 MAC 何使用 IP 获取 | 更新日期: 2023-09-27 18:34:00
我想使用连接到同一网络的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 回复数据包进行回复。