我有一台 Linux 机器,通过以太网电缆直接连接到 Raspberry Pi。有没有一种方法可以根据我计算机上连接的以太网端口(eth0、eth1 等...)以 C 语言编程获取 Raspberry Pi 的 MAC 地址
例如,假设我有两个 Raspberry Pi,一个连接到 eth0,另一个连接到 eth1。我只想获取连接到 eth0 的 Pi 的 MAC 地址。我该怎么做?
最佳答案
根据您是否知道 Pi 地址,有两种情况:
Pi 有 IP 地址并且您的程序知道它,您可以向它发送任何数据,例如一个
ICMP PING
数据包,网络堆栈将发出对该地址的ARP
请求,当 Pi 响应其 MAC 地址时,您可以从 ARP 表中获取它,可以通过命令arp -n
查看。Pi 的 IP 未知,然后您通过连接的接口(interface)
eth0
在本例中发送广播数据包,例如ping -b -I eth0 255.255。 255.255
,Pi也会响应它的MAC地址,您可以从本地arp表中获取它。
现在,如何以编程方式执行此操作,您可以使用原始套接字发送数据包,并通过解析 proc 条目 /proc/net/arp
来读取 arp 表。
关于c - 从 Raspberry Pi 请求 MAC 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37128324/