在程序的同时进行嗅探

时间:2014-07-07 05:57:17

标签: python scapy sniffing

我有一个python + Scapy代码可以嗅探数据包并测量他们的时间旅行。 除了sniff()选项停止运行代码外,一切都运行良好。

所以,如果我有一个看起来像这样的代码:

print "hello"
print "world"
sniff(iface="lo")
print "this will not show"

因为sniff正在运行,第4行将不会被执行。

我该怎么改变? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定这是否符合您的需求,但sniff采用prn关键字参数,用于在数据包进入时将数据包打印到屏幕,但也可用于实时处理它们。

http://www.secdev.org/projects/scapy/doc/usage.html#simplistic-arp-monitor

例如:

def process(pkt):
    # do stuff

sniff(iface="lo", prn=process)
收到每个数据包后,将调用

process一次。这可能允许您在收到数据包时执行其他任务,但仍然不允许您执行任何通用后台任务。