【问题标题】:Scapy sniffing the same packet that I just sentScapy 嗅探我刚刚发送的同一个数据包
【发布时间】:2018-05-18 17:41:49
【问题描述】:

我有一个问题,如果我发送一个数据包,然后嗅探对该发送数据包的响应,我的 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 中会出现这种行为。

我安装了 Python 2.7.X 和最新的 Scapy。这个问题的根本原因可能是什么?

【问题讨论】:

    标签: scapy packet-sniffers


    【解决方案1】:

    我认为这两种行为都是“正常的”(差异的根本原因可能在于 Scapy 依赖于架构的内部结构),但您不能假设在这种情况下您会或不会看到自己的数据包(它可能被称为未定义的行为)。

    出于好奇,您使用的是哪个版本?最新的 == 当前的开发、最新的稳定版本 (2.4.0) 还是打包在某处的当前版本?

    顺便说一句,我不确定你到底想做什么,但你知道存在sr()srp()(和sr1()srp1())如果你想得到答案你的包?

    【讨论】:

      猜你喜欢
      • 2015-04-02
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 2021-06-03
      • 2015-04-24
      • 1970-01-01
      • 2015-04-09
      • 2013-09-11
      相关资源
      最近更新 更多