当来自命令行的 Ping 获得回复时,Scapy ICMP 回显请求(Ping)未回复

Scapy ICMP echo request (Ping) is not replied while a Ping from the command line gets replies

我正在使用 Windows 10 的命令行来 ping 一个不在我的 LAN 上的设备。我正在使用 VPN 连接与该设备通信。设备响应我从命令行发送的所有 ping 请求。

但是当我用 scapy 发送 ICMP echo 请求时,我没有得到任何响应。命令行 ping 和 scapy ping 的唯一区别是后者不填充 ICMP 数据包的标识符和序列字段(这两个字段的默认值可能都是 0)。

这是我的 python 代码:

from scapy.all import IP, ICMP, sr1

reply = sr1(IP(dst=dst_ip)/ICMP())

我在 windows 防火墙关闭的情况下尝试了两个 ping 请求。

有什么问题吗?如何通过 scapy ping 获得响应?

Scapy 可能选错了 interface/route。

我会做的是 运行 sr1iface 参数并提供一个明确的接口名称。 Scapy 具有 get_if_list() 功能来列出您的网络接口,但在 Windows 上这可能会有所不同。看到您正在使用 Windows,您可能必须使用 'meaningful name' 即 'Network Connection 1'。这是一个有用的 link 以防万一:Python netifaces and scapy: Getting meaningful Interface-names and full IP-Adresses-/Netmask-Information