【问题标题】:Request MAC address from Raspberry Pi从树莓派请求 MAC 地址
【发布时间】:2016-09-04 19:54:20
【问题描述】:
我有一台 Linux 机器,它通过以太网电缆直接连接到 Raspberry Pi。有没有办法在 C 中以编程方式获取 Raspberry Pi 的 MAC 地址,具体取决于它连接到我计算机上的哪个以太网端口(eth0、eth1 等...)
例如,假设我有两个 Raspberry Pi,一个连接到 eth0,另一个连接到 eth1。我想只获取连接到 eth0 的 Pi 的 MAC 地址。我该怎么做?
【问题讨论】:
标签:
c
linux
ethernet
mac-address
【解决方案1】:
根据你是否知道 Pi 的 ip 地址,有两种情况:
Pi 有 IP 地址并且你的程序知道,你可以发送任何数据给它,例如一个ICMP PING包,网络栈会发出ARP地址请求,当Pi用它的MAC地址响应时,你可以从ARP表中得到它,可以通过命令arp -n查看。
不知道 Pi 的 IP,然后你通过连接的接口发送一个广播包,eth0 在这种情况下,例如ping -b -I eth0 255.255.255.255,Pi 也会响应它的 MAC 地址,你可以从本地的arp表中获取。
现在了解如何以编程方式执行此操作,您可以使用原始套接字发送数据包,并通过解析 proc 条目 /proc/net/arp 来读取 arp 表。