我正在寻找具体的任务: 从数据包中获取有效负载/数据 - >附加到文件...但是。我想特别按照flags / ICMP类型/ etc来跟踪数据包......所以我想说我想特意把#34; 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 )
这里的问题是我无法找到专门嗅探" type = echo request"我可以使用的唯一参数是' protocol'和主持人或'而不是主持人127.0.0.1'。
有解决方法吗?
我认为对于这个我需要使用ctypes和libpcap.so但是我不确定...(我没有找到任何[其他]用于python的库 - 嗅探)
答案 0 :(得分:1)
我现在没有安装scapy,但是如果你只是在你的回调函数pkt_diam中检查类型echo-reply怎么办:
if not "echo-reply" in pkt.show():
return
答案 1 :(得分:1)
尝试过滤器=" icmp [0] = 8"用于在捕获过程中进行过滤或
if pkt[ICMP].type==8:
在回调函数中。