0

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

4

2 回答 2

2

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

于 2010-07-19T07:05:42.143 回答
-1

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

于 2010-07-22T09:41:23.697 回答