通过直接以太网连接查找 MAC 地址

Find MAC address through direct ethernet connection

我想找到设备的 MAC 地址。示例:将网线从我的 linux 机器连接到目标设备,发送一些命令,接收 MAC。

我现在最好的解决方案是将路由器连接到设备,等待它发出 dhcp 租约,通过 ssh 连接到路由器并读取租约 table。

我知道 dhcp 服务器等待设备的请求然后发出租约,但我想主动向设备发送一些请求并直接从答案中获取 MAC。

最大的问题似乎是没有 运行 dhcp 服务器我无法与设备通信。这可以通过较低的层来完成吗?也许是 ARP 请求?

谢谢!

先 Ping 其他设备然后 运行 命令

arp -a

您可以看到您刚刚 ping 的设备的 MAC 地址。

如果您不知道设备的 MAC 地址,与它通信的唯一方法是通过某种广播。这意味着主机上有一些活动的软件正在侦听此类将回复的广播。这就是主机(使用 ARP)如何从 IP 地址解析本地网络上的 MAC 地址。除非您知道 IP 地址,否则 ARP 不会为您工作。

如果您的设备没有协议支持,那您就卡住了。

如果您使用的是 linux,则有 wireshark(或 CLI 版本的 tshark):

sudo apt-get install tshark
sudo tshark -i eth0

您将看到您的笔记本电脑或连接的设备通过该以太网接口发送的每个数据包。假设设备已开机,您可能会在所有低级网络协议涌出的某个地方看到您正在寻找的 MAC 地址。如果喷出的东西不多,请尝试重新插入以太网电缆。 (抱歉;我是来这里寻找更好的答案的)

我们通过侦听来自目标机器的数据包并从我们得到的第一个数据包中提取 mac 地址来解决这个问题。

谢谢大家的回答!