Python 我通过scapy的ppp链接发送数据包,为什么sr可以';你没有收到答复吗?tcpdump ppp0正常

Python 我通过scapy的ppp链接发送数据包,为什么sr可以';你没有收到答复吗?tcpdump ppp0正常,python,scapy,pppoe,Python,Scapy,Pppoe,我尝试通过ppp链路发送icmp数据包,但sr无法收到回复,tcpdump ppp0正常 sh-4.2# tcpdump -i ppp0 -n icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 23:52:58.595117

我尝试通过ppp链路发送icmp数据包,但sr无法收到回复,tcpdump ppp0正常

sh-4.2# tcpdump -i ppp0 -n icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode  
listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
23:52:58.595117 IP 219.240.73.152 > 106.120.159.142: ICMP echo request, id 10915, seq 1, length 8
23:52:58.618401 IP 106.120.159.142 > 219.240.73.152: ICMP echo reply, id 10915, seq 1, length 8
我的代码如下,结果是超时!Scapy版本是2.4.3


导入操作系统
从斯卡皮来的,都是进口货*
conf.route.resync()
packet=IP(dst=“www.baidu.com”)/ICMP(id=10915,seq=1)
ans,unans=sr(数据包,filter='icmp',verbose=0,timeout=3)

如果ans为None或len(ans),您是否尝试使用
iface=
将iface传递给sr?我尝试添加,但仍然不起作用!ans,unans=sr(数据包,filter='icmp',verbose=0,timeout=timeout,iface=“ppp0”)它工作了!我添加了nofilter=True和iface=“ppp0”,非常感谢!
import os  
from scapy.all import *

conf.route.resync()  
packet = IP(dst="www.baidu.com")/ICMP(id=10915, seq=1)  
ans,unans = sr(packet, filter='icmp', verbose=0, timeout=3)  
if ans is None or len(ans) <= 0:  
    result = {"ans": len(ans), "unans": len(unans), "error": "timeout"}    
    print(result)  
    return

tx = ans[0][0]  
rx = ans[0][1]  
time = '%.2f' % ((rx.time-tx.sent_time) * 1000)   
ip = rx.sprintf("%IP.src%")   
result = {"ip": ip, "time": time}  
print(result)