从 Raspberry Pi 请求 MAC 地址

Request MAC address from Raspberry Pi

我有一台 Linux 机器通过以太网电缆直接连接到 Raspberry Pi。有没有办法在 C 中以编程方式获取 Raspberry Pi 的 MAC 地址,基于它连接到我计算机上的哪个以太网端口(eth0、eth1 等...)

例如,假设我有两个 Raspberry Pi,一个连接到 eth0,另一个连接到 eth1。我只想获取连接到 eth0 的 Pi 的 MAC 地址。我该怎么做?

根据你是否知道树莓派的ip地址,有两种情况:

  • 树莓派有 IP 地址并且为你的程序所知,你可以向它发送任何数据,例如ICMP PING 数据包,网络堆栈将发出 ARP 地址请求,当 Pi 以其 MAC 地址响应时,您可以从 ARP table 中获取它,可以通过命令arp -n.

  • 查看
  • 不知道树莓派的IP,那么你通过连接的接口发送一个广播包,eth0这种情况,比如ping -b -I eth0 255.255.255.255,树莓派也会用它的 MAC 地址响应,你可以从本地 arp table.

  • 得到它

现在了解如何以编程方式执行此操作,您可以使用原始套接字发送数据包,并通过解析 proc 条目 /proc/net/arp.

读取 arp table