c - 从 Raspberry Pi 请求 MAC 地址

标签 c linux ethernet mac-address

我有一台 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/

相关文章:

c - 语法错误: 'constant' while using flex

c - 部分正弦数据拟合代码 C

c - 拆解二元炸弹第三阶段逻辑难理解

c - 如何在 C 语言中改进/加速此频率函数?

c - 附加到进程后,如何检查tracee是否在系统调用中?

linux - FEC 和 Gianfar 派生器

java - 对数据摄取Hadoop感到困惑

linux - 口是心非+云文件

c - 示例 mq_timedreceive

assembly - 如何在 x86 程序集中读写网卡?