[英]Python based network sniffer (scapy not good enough?)
我正在寻找特定的任务:从数据包中抓取有效载荷/数据->追加到文件...但是。 我想专门根据标志/ ICMP类型/等来遵循数据包。因此,可以说我想专门采用“ echo”数据包的有效负载,而不是其余的。
我的(无效)代码如下:
from scapy.all import *
f= open('filecaptured', 'a+')
def pkt_diam(pkt):
raw = pkt.getlayer(Raw).load
print raw
# pkt.show()
# fo = open("payload", "wb")
f.write(raw);
sniff (filter="icmp" , store=0, prn=pkt_diam, timeout = 120 )
这里的问题是,我找不到专门针对“类型=回显请求”进行监听的方法,并且我只能使用“协议”和主机或“而不是主机127.0.0.1”作为参数。
有没有解决的办法?
我想为此,我需要使用ctypes和libpcap.so,但是我不确定...(我没有找到python的任何[other]库-sniffing)
我现在没有安装scapy,但是如果您仅在回调函数pkt_diam中检查echo-reply类型,该怎么办:
if not "echo-reply" in pkt.show():
return
尝试在捕获过程中过滤filter =“ icmp [0] = 8”进行过滤,或者
if pkt[ICMP].type==8:
在回调函数中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.