我有一个python + Scapy代码可以嗅探数据包并测量他们的时间旅行。
除了sniff()
选项停止运行代码外,一切都运行良好。
所以,如果我有一个看起来像这样的代码:
print "hello"
print "world"
sniff(iface="lo")
print "this will not show"
因为sniff
正在运行,第4行将不会被执行。
我该怎么改变? 提前谢谢!
答案 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
一次。这可能允许您在收到数据包时执行其他任务,但仍然不允许您执行任何通用后台任务。