首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用RadioTap时,在Scapy 3.0中遇到错误,在Scapy 2.4中工作正常

在使用RadioTap时,在Scapy 3.0中遇到错误,在Scapy 2.4中工作正常
EN

Stack Overflow用户
提问于 2018-09-20 08:43:06
回答 1查看 189关注 0票数 1

我只是在尝试创建一个以例如开头的包。

packet = RadioTap()/Dot11()/Dot11ACK()

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

代码语言:javascript
复制
###[ 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'
EN

回答 1

Stack Overflow用户

发布于 2018-09-21 04:51:39

目前还没有"Scapy 3.0版“这样的东西。Scapy的一个分支已经存在,最初被他的作者粗暴地命名为"Scapy3k“或”Python3的Scapy“(如您所见,导致了很多混淆)。在Scapy的维护者、Kamene的作者和一些发行版维护者之间进行了无休止的对话之后,它最近终于被重新命名为"Kamene“。

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

Scapy的相同代码库适用于Python2.7和3.x。因此,通过升级到Scapy v2.4.0,您应该能够在两个Python版本上运行您的代码(希望得到相同的结果)。如果你没有得到相同的结果,请使用open an issue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52415933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档