我正在使用Scapy通过以下代码捕获数据包
from scapy.all import *
def verify(p):
p.display()
sniff(prn=verify, iface="lo")
嗅探功能捕获每个数据包多次。 例如,如果我有一个DNS查询数据包,则此数据包将显示两次。 如何使Sniff函数仅捕获一次数据包?
答案 0 :(得分:2)
这是预期的行为。当它们“离开”和“到达”时,Scapy都会在环回接口上看到这些数据包。由于环回是一个特殊的接口,因此所有内容都可以毫无区别地复制。也许您应该只跳过第二个包。
有一次它被报告为错误,但被拒绝了:https://bitbucket.org/secdev/scapy/issues/887/sniff-sends-packets-twice