为什么绑定pdst和目标ip地址绑定一个广播mac地址而不是目标mac地址

Why binding pdst with the target ip address and binding a broadcast mac address instead of the target mac address

在'The Black Hat Python'本书第53页restore_target。 为什么我们指定网关的 ip 地址而不指定其 mac 地址?我的意思是,如果我们要广播我们的 ARP 数据包,那么为什么要给出特定 IP 地址的 pdst 值而不是像 hwdst 这样的广播 IP 地址? ?

send(ARP(op=2, psrc=gateway_ip, pdst=target_ip, hwdst="ff:ff:ff:ff:ff:ff",hwsrc=gateway_mac),count=5)

您在此处发送的内容称为 免费 ARP。 这是一种特殊的数据包,由目的地 Mac 是 ff:ff:ff:ff:ff:ff.

的事实定义

看看:https://www.practicalnetworking.net/series/arp/gratuitous-arp/

不同的是它是一个应答包,即使没有请求包。是 "gratuitous"。在你的例子中,你正在发送一个数据包映射 psrchwsrc,发送给所有人:路由器正在向所有人通告他的 MAC。

在这种情况下,pdst没有什么意义,但按照惯例应该设置为与psrc相同的地址。我不知道为什么你的例子不一样。