使用scapy向百度发送icmp报文,出现WARNING: Mac address to reach destination not found. Using broadcast.错误,请问如何解决
时间: 2024-03-06 21:52:11 浏览: 58
python2.7使用scapy发送syn实例
这个警告是因为Scapy没有找到百度的MAC地址,所以使用广播方式发送。这通常是因为目标主机不在同一局域网内,或者目标主机的ARP缓存已经过期。
要解决这个问题,可以手动发送ARP请求来获取百度的MAC地址。可以使用以下代码片段:
```python
from scapy.all import *
# 百度的IP地址
ip = "220.181.38.148"
# 发送ARP请求
arp = ARP(pdst=ip)
ether = Ether(dst="ff:ff:ff:ff:ff:ff")
packet = ether/arp
result = srp(packet, timeout=3, verbose=False)[0]
# 获取百度的MAC地址
for sent, received in result:
return received.hwsrc
```
这段代码发送一个ARP请求,获取百度的MAC地址,并返回MAC地址。然后你可以使用这个MAC地址发送ICMP报文。
阅读全文