有没有办法在ANSI C中获取目标mac地址

时间:2010-07-19 06:57:21

标签: c network-programming kernel mac-address

如果目标IP已知,是否有办法使用ANSI C获取目标MAC地址?我最好用系统调用来做,所以内核处理它,我可以利用ARP缓存。我知道我可以构建并发送自己的ARP请求,但是我不会拥有缓存功能等,除非我自己实现它,所以让内核处理它是感觉就好了。

2 个答案:

答案 0 :(得分:2)

不是一个确切的答案,因为它不是ANSI C,但你可以从/proc/net/arp读取arp表(在Linux中,也就是说)。这就是arp看起来的地方。对于任何其他操作系统,最简单的方法是在等效的arp-cache-showing实用程序上使用strace或等效项。

答案 1 :(得分:-1)

我决定做的是发送我自己的ARP数据包并在我的应用程序中内部缓存它。如果目的地在我的本地网络之外,我解析/proc/net/route并提取给定接口的网关,并将arp数据包发送到网关以获取它的macaddress(因为这是发往本地网络之外的数据包的目标宏地址)