ARP协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;
OP
操作类型:
- 1 ARP请求
- 2 ARP应答
- 3 RARP请求
- 4 RARP应答
数据包分析
ping局域网中的一个地址
抓包,可以看到在寻找10.35.68.1
是谁,并做出了答复
封装为Ether/ARP
Ether
源MAC
为本机MAC
目的MAC
为广播地址ff:ff:ff:ff:ff:ff
(ARP特性)
ARP:
op
为1
(ARP请求)源MAC
和源IP
为本机MAC
和本机IP
目的MAC
和目的IP
为00:00:00:00:00:00
和目标机IP,
答复包
ARP:
-
获取到
10.35.68.1
的MAC
并判断它存活 -
op
为2
(ARP答复)
编写脚本
1.Scapy中ARP的请求和答复
>>> ls(ARP)
hwtype : XShortField = (1)
ptype : XShortEnumField = (2048)
hwlen : FieldLenField = (None)
plen : FieldLenField = (None)
op : ShortEnumField = (1)
hwsrc : MultipleTypeField = (None)
psrc : MultipleTypeField = (None)
hwdst : MultipleTypeField = (None)
pdst : MultipleTypeField = (None)
>>> arp = (Ether(dst='FF:FF:FF:FF:FF:FF')/ARP(op=1, pdst