当来自命令行的 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。
我会做的是 运行 sr1
和 iface
参数并提供一个明确的接口名称。 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
我正在使用 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。
我会做的是 运行 sr1
和 iface
参数并提供一个明确的接口名称。 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