1、回顾ARP协议
获取局域网内其他主机的mac地址,我们使用的是ARP协议,首先回顾以下ARP协议
ARP request:
ARP response:
2、代码实现
# 获得一个局域网内的所有mac地址信息
from scapy.all import ARP, Ether, srp
# “/24” 的意思是扫描的局域网的范围 192.168.1.1 ~ 192.168.1.255;
# 当然这里使用单个具体的ip地址也是可以的,也就是获得具体主机的mac地址
target_ip = '192.168.1.1/24'
# 创建arp packet
arp = ARP(pdst=target_ip)
# 创建以太网广播包(Ether broadcast packet),"ff:ff:ff:ff:ff:ff" mac 地址表明广播
ether = Ether(dst="ff:ff:ff:ff:ff:ff")