我有一台Linux机器,它通过以太网电缆直接连接到Raspberry Pi。是否有一种在C语言中以编程方式获取Raspberry的MAC地址的方法,根据它连接到我的计算机上的哪个以太网端口(eth0、eth1等)
例如,假设我有两个Raspberry Pi,一个连接到eth0,另一个连接到eth1。我只想得到与eth0连接的Pi的MAC地址。我该怎么做?
发布于 2016-05-10 02:55:41
根据您是否知道Pi的ip地址,有两种情况:
ICMP PING数据包,网络堆栈将为该地址发送ARP请求,当Pi响应其MAC地址时,您可以从ARP表中获得它,该表可以由命令arp -n查看。eth0发送广播数据包,例如,ping -b -I eth0 255.255.255.255,Pi也将响应它的MAC地址,您可以从本地的arp表中得到它。现在,您可以使用原始套接字发送数据包,并通过解析proc条目/proc/net/arp读取arp表。
https://stackoverflow.com/questions/37128324
复制相似问题