Networking 如何知道远程通信端的MAC地址?

Networking 如何知道远程通信端的MAC地址?,networking,network-programming,linux-kernel,kernel-module,Networking,Network Programming,Linux Kernel,Kernel Module,首先,我需要在内核空间中了解这一点,所以请考虑这一点 不,我不能使用其他设备的IP地址和ARP(太长了,无法解释为什么在这里),但我根本不能使用ARP,ARP将不适用于我正在进行的项目 是否有一个函数/实用程序可用于了解连接到给定网络设备的另一端的MAC地址,而不考虑IP 提前谢谢,如果我的问题不清楚或没有意义,请留下评论,我会确保编辑问题以解释/填补空白。关于“我需要和邻居说话”这类问题的标准协议是。目前,这通常是通过Linux系统上的OpenLLDP(用户空间)实现的。然而,似乎有一些方法可

首先,我需要在内核空间中了解这一点,所以请考虑这一点

不,我不能使用其他设备的IP地址和ARP(太长了,无法解释为什么在这里),但我根本不能使用ARP,ARP将不适用于我正在进行的项目

是否有一个函数/实用程序可用于了解连接到给定网络设备的另一端的MAC地址,而不考虑IP

提前谢谢,如果我的问题不清楚或没有意义,请留下评论,我会确保编辑问题以解释/填补空白。

关于“我需要和邻居说话”这类问题的标准协议是。目前,这通常是通过Linux系统上的OpenLLDP(用户空间)实现的。然而,似乎有一些方法可以帮助您:


假设您有可能在另一端启用LLDP,您应该能够使用它来发现该设备。

您有权访问传入的数据包吗?nefhook就是一个例子。我确实可以访问传入的数据包。目前,我正在保存传入帧的MAC地址,以便稍后用于发送。但是,还有其他方法可以做到这一点吗?没有,您可以预先配置它,也可以按原来的方式进行。您也可以查看arp表,但对我来说,从内核代码实现起来似乎更困难。如果您不使用arp,您如何通信?你预先填充了ARP缓存?没有。嗯,我不能使用ARP,因为我正在更改我用手通信的IP地址(出于另一个目的,这超出了问题的范围),所以如果我用ARP查询IP,ARP将找不到它们,或者会找到错误的东西。