繁体   English   中英

基于Python的网络嗅探器(capyy还不够好吗?)

[英]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-r​​eply类型,该怎么办:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM