- 理解arp协议
- 编写arp脚本抓取对应主机mac地址
ARP:地址解析协议
*用来将IP地址转换为MAC地址的。
背景知识:
IP地址:给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围唯一的32位的标识符。
通俗点讲:标识网络中不同主机的地址。端口号:同一台主机上标识不同进程的地址。
IP地址+端口号 ——》标识网络中唯一的进程。
在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址(MAC地址),而数据包首先是被网卡接收后再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。
因此在通讯前必须获得目的主机的硬件地址。这时就需要使用ARP协议来获取这个主机的硬件地址。
(数据包首先到达目的主机所在的局域网,而在局域网中数据是以数据帧的形式进行传输,而在数据帧的首部所填充的源地址与目的地址均指的是MAC地址,所以需要知道目的主机的MAC地址).
源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),.目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。
假设:现在有主机1向主机2发送数据包,主机1已知主机2的IP地址,却不知道主机2的MAC地址,所以需要通过ARP协议获取主机2的MAC地址。
已知:主机1的IP地址:IP1
主机1的MAC地址:MAC1
主机2的IP地址:IP2
主机2收到广播信息时,这时发现广播的IP地址和自己的IP地址相符,就将自己的IP地址和MAC地址填入ARP报文中,然后发送ARP应答报文。
编写arp脚本抓取对应主机mac地址
结果如下: