2016-11-04 143 views
0

我想使用esp8266来查找哪些ip地址在同一个子网上注册,以及他们的家庭自动化项目的mac地址。 ping响应是否包含设备的MAC地址,还是有可能通过本地网络进行请求。ping响应是否包含MAC地址?

+1

您想使用RARP消息。编辑:错误,只是一个ARP消息。 RARP是另一回合。 –

+0

http://security.stackexchange.com/questions/64281/how-to-get-mac-address-via-ip 可能很方便,向下滚动到第二个答案。你将不得不使用地址解析协议或ARP。 – wbrugato

+0

@ ThomasM.DuBuisson,RARP实际上会从另一个主机(如网关)返回您自己的IP地址。它实际上不是ARP的反向,而是ARP的反面。 –

回答

0

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

0

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

1

在* 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,我认为这应该成为你的目的。