我有一个问题,如果我发送数据包然后嗅探对该发送数据包的响应,我的s.sniff()函数将返回我刚发送的数据包!
前:
def sendOneFast(pkt):
"""
Function: sendOneFast
Purpose: Opens a layer 2 socket on interface, sends a packet on that socket.
pkt -> Scapy packet to be sent
"""
s = conf.L2socket(iface='Intel(R) Ethernet Connection (2) I219-LM #2')
s.send(pkt)
l = s.sniff(iface = 'Intel(R) Ethernet Connection (2) I219-LM #2', timeout = 0.03)
return l
当我将此功能称为数据包时,' l'将是我发送的数据包!注意:当我在Linux中运行相同的代码时,这可以正常工作,但在Windows 7/10中表现出这种行为。
我安装了最新的Scapy的Python 2.7.X.可能是这个问题的根本原因是什么?
答案 0 :(得分:0)
我认为这两种行为都是“正常的”(差异的根本原因可能在于Scapy依赖于体系结构的内部结构),但你不能假设在这种情况下你会看到或不会看到自己的数据包(它可以被称为未定义的行为)。
出于好奇,你正在使用哪个版本?最新的==当前的开发,最新的稳定版本(2.4.0)还是当前版本打包的地方?
顺便说一句,我不确定你到底想要做什么,但是你知道存在sr()
,srp()
(和sr1()
,srp1()
)如果你想捕获你的数据包的答案?