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

本文关键字:地址 一台 MAC 何使用 IP 获取 | 更新日期: 2023-09-27 18:34:00

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

我想要一个不使用 iphlpapi 的逻辑.dll或者使用 arp -a ipaddress 在 C# 中运行命令提示符。

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

您必须以某种形式使用地址解析协议 (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 回复数据包进行回复。