ping响应是否包含MAC地址?

时间:2016-11-04 19:27:00

标签: networking esp8266 arduino-esp8266

我正在尝试使用esp8266来查找在同一子网上注册的IP地址及其家庭自动化项目的mac地址。 ping响应是否包含设备的MAC地址,或者是否可以通过本地网络请求它。

3 个答案:

答案 0 :(得分:1)

在* nix系统上,您可以运行arping <some-ip>以获取同一网络上的计算机的MAC地址(当然,只有那些能够在不通过网络路由的情况下获取数据包的计算机)。 / p>

正如rodolk建议的那样,你可以运行pcap并查看以太网帧。以太网帧包含源MAC,目标MAC和以太网类型。 像这样:

uint8_t  ether_dhost[ETHER_ADDR_LEN];    /* destination MAC address */
uint8_t  ether_shost[ETHER_ADDR_LEN];    /* source MAC address */
uint16_t ether_type;                     /* packet type ID */

您可以嗅探数据包并解析以太网标头,或者您可以运行arping,我认为这应该符合您的目的。

答案 1 :(得分:0)

Ping不会显示MAC地址。它只是告诉您服务器是否在线。 您可以在Windows上使用“nbtstat -a ip”命令来执行此操作。

答案 2 :(得分:0)

如果您尝试获取给定IP地址(第3层)的MAC地址(第2层),则可以使用RARP。否则,如果您使用ping,则在第3层您无法访问ping响应的MAC地址。但是,您可以使用pcap来嗅探网络,使用apporpriate pcap过滤器读取ping回复,并从到达的以太网帧中获取MAC地址。您还可以使用数据包套接字来获取第2层帧。 pcap应该很有用。