我需要生成一个包含目标 MAC 地址的以太网标头(因为 libnfnetlink 在预路由发生之前仅提供 IP 标头),传出接口号也是已知的,因此可以在正确的网络中进行查找。
从 IP 地址解析 MAC 地址的库/函数是什么?
目前还不清楚为什么需要 MAC 地址,因为这通常是在较低级别为您处理的。
但是,假设您的目标位于本地以太网段上,您可以使用arp命令查找本地缓存中的值。如果该值没有被缓存...那么,这是一个问题。也许arping有助于...
(通常情况下,您会发送一个数据包到 IP 地址 10.10.10.10,然后您的系统会发送一个 ARP 数据包来查询谁拥有 10.10.10.10,并且会从该目标系统返回一个带有其 MAC 地址的响应,然后它将被缓存。(您可以使用tcpdump.) 或者当系统上线时,它会发送一条广播消息,通知其他所有人其 MAC 地址。当然,如果您的目的地位于另一个以太网段上,您将路由到网关而不是直接到达目的地,并且没有可用的目的地 MAC 地址。)
您可以进一步阅读:
- http://linux.die.net/man/8/arp http://linux.die.net/man/8/arp
- http://linux.die.net/man/8/arping http://linux.die.net/man/8/arping
- http://linux.die.net/man/7/arp http://linux.die.net/man/7/arp
- http://www.kernel.org/doc/man-pages/online/pages/man7/arp.7.html http://www.kernel.org/doc/man-pages/online/pages/man7/arp.7.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)