目前我正在做一个研究项目,假设我们有两台计算机直接通过 LAN 电缆连接,同一子网中没有任何交换机或路由器。两个节点目前都没有 IP 地址,有什么方法可以获取目标节点的 MAC,反之亦然?我对这个问题进行了研究,但主要是找到与 IP 相关的解决方案。像 arping、getmac、nmap 等,但都是基于 IP 的。是否有任何代码使用诸如PF_PACKET套接字之类的网络套接字或其他可以让我们了解如何处理此问题的代码。我发现了一些关于 ARP 的信息,但我想知道它不是我们正在寻找的解决方案,点击 [这里] https://www.lynxbee.com/understanding-arp-basics-and-sending-arp-request-and-receiving-arp-reply-using-c-code-in-linux/
我们的应用程序使用基于 PF_PACKET 的套接字从第 2 层 MAC 发送/接收帧。现在我们可以从源 NIC 接口中提取 MAC 地址,但是对于目标 MAC 地址,我们需要一些没有IP 第 3 层模块通信的方法。
环境:语言 C,CentOS 7,内核 v3.10。
先感谢您。