我正在尝试使用esp8266来查找在同一子网上注册的ip地址以及它们在家庭自动化项目中的mac地址。ping响应是否包含设备的MAC地址,或者是否可以通过本地网络请求该地址。
发布于 2016-11-05 13:32:31
在*nix系统上,您可以运行arping <some-ip>来获取同一网络上的机器的MAC地址(当然,只有那些无需通过网络路由就可以获取数据包的机器)。
正如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,我认为这应该可以满足您的目的。
发布于 2016-11-05 03:50:42
Ping未显示MAC地址。它只是简单地告诉你服务器是否在线。您可以在windows上使用"nbtstat -a ip“命令来执行此操作。
发布于 2016-11-05 09:21:30
如果您在给定IP地址(第3层)的情况下尝试获取MAC地址(第2层),则可以使用RARP。否则,如果您使用ping,在第3层您将无法访问ping响应的MAC地址。但是,您可以使用pcap来嗅探网络,使用适当的pcap筛选器读取ping回复,并从到达的以太网帧中获取MAC地址。您还可以使用数据包套接字来获取第2层帧。pcap应该是有用的。
https://stackoverflow.com/questions/40430423
复制相似问题