是否可以通过不使用ARP请求(本地表)获取本地网络中的设备MAC地址>

时间:2017-11-05 00:23:14

标签: networking network-programming

我想知道是否有任何现有的设备发现协议(如Bonjour,UPnP或多播DNS)都提供此选项。指向一些示例代码会有很大帮助。

1 个答案:

答案 0 :(得分:1)

您使用“Linux”标记了您的问题。因此,我不知道您的问题是否特定于Linux,或者您是否想知道“通用”答案。

“通用”答案:

理论上,您可以将所有IPv4消息发送到以太网广播地址(FF:FF:FF:FF:FF:FF) - 甚至是单播数据包。

可能会发送一些单播数据包(例如“ping”请求)作为广播以太网帧(但正确设置IP数据包中的“目标地址”)。然后你可以从答案的以太网框架中读出“源MAC地址”。

然而,“ping”数据包的接收方可能会发送ARP请求来查询您的IP地址。因此,查询MAC地址的计算机无论如何都必须实现ARP应答。

我只是尝试使用上述方式向我的WLAN路由器发送“ping”请求。 WLAN路由器确实发送了ARP请求...