python - 使用 RadioTap 时在 Scapy 3.0 中出现错误,该错误在 Scapy 2.4 中工作正常

标签 python scapy

我只是想在scapy中创建一个以eg开头的数据包

数据包 = RadioTap()/Dot11()/Dot11ACK()

packet.show() 给了我这个错误。 我无法发送任何没有 RadioTap 字段的数据包。

###[ RadioTap dummy ]###

      version   = 0
      pad       = 0
      len       = None
      present   =
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scapy/packet.py", line 851, in show
    if isinstance(f, ConditionalField) and not f._evalcond(self):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scapy/fields.py", line 144, in _evalcond
    return self.cond(pkt)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scapy/layers/dot11.py", line 130, in <lambda>
    ConditionalField(LELongField('tsft', 0), lambda pkt: pkt.getdictval('present')['TSFT']),
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scapy/packet.py", line 186, in getdictval
    return fld.i2dict(self, v)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scapy/fields.py", line 919, in i2dict
    if x & 1:
TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'

最佳答案

目前还没有“Scapy version 3.0”这样的东西。 Scapy 的一个分支,最初被作者滥用地命名为“Scapy3k”或“Scapy for Python3”(如您所见,导致了很多困惑)。经过 Scapy 的维护者、Kamene 的作者和一些发行版维护者之间的无休止的对话,它最近终于被重命名为“Kamene”。

因此,您在 Python 3 中使用的代码可能不是 Scapy,而是 Kamene。需要明确的是,当您迁移到 Kamene 并相信您正在升级 Scapy 时,您实际上已经切换到了一个比实际 Scapy 获得的升级(错误修复、新功能)数量非常有限的软件。

Scapy 的相同代码库适用于 Python 2.7 和 3.x。因此,通过升级到 Scapy v. 2.4.0,您应该能够使用两个 Python 版本运行代码(并且希望获得相同的结果)。如果您没有得到相同的结果,请open an issue !

关于python - 使用 RadioTap 时在 Scapy 3.0 中出现错误,该错误在 Scapy 2.4 中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52415933/

相关文章:

javascript - python flask : Return HTML Content

Python 字符串格式

python - 在 Mac 中使用 scapy 嗅探 UDP 数据包

Python - Scapy 选择一个接口(interface)来嗅探

python - 在数据包中添加有效负载

python - 如何高效判断应用程序生成数据包

python - 如何在 python 字符串中的子字符串之间查找子字符串?

Python multiprocessing.Pool.map 悄然死去

python - Scapy - 持久的 RandIP

python - xarray 列上的基本加法/减法