ARP协议

来源:互联网 发布:清理后台的软件 编辑:程序博客网 时间:2024/06/06 06:48

1 ARP协议概念
   ARP协议的目的:得到的主机的硬件地址。原理:源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。
2 ARP报文
  ARP报文格式(图来自Linux高性能编程):
这里写图片描述
  1) 硬件类型指链路层网络类型,1为以太网。
  2) 协议类型指要转换的地址类型,0x0800为IP地址。
  3) 两个地址长度对于以太网地址和IP地址分别为6和4(字节)。
  4) op字段为1为ARP请求,op字段为2表为ARP应答。op字段为3为RARP请求,op字段为4表为RARP应答。
  5) 最后四个字段指定通信双方的以太网地址和IP地址。发送端填充除以太网地址外的其他三个字段,发送ARP请求,接受端发现目的IP为自己,产生应答并填入自己的MAc地址,并返回。
3 编写ARP脚本
  编写ARP脚本抓取对应主机MAC地址。

#!/bin/bashhead='192.168.73'i=1count=0while [ $i -le 254 ]do    if [ $count -gt 20 ];then    count=0    sleep 1    fi    ping -c1 "${head}"".$i" &    let i++    let count++donewaitecho "#############################################################"arp -a | grep -v 'incomplete'echo "#############################################################"

这里写图片描述