【问题标题】:Scapy windows - sniff() - 'log_runtime' is not definedScapy windows - sniff() - 'log_runtime' 未定义
【发布时间】:2017-04-09 04:24:04
【问题描述】:
我按照支持的程序安装了 python 2.7 和 scapy:pywin32、WinPcap、Pypcap 和 libdnet。我觉得说我的操作系统是windows 7很重要。
当我使用函数 sniff 时,它似乎会引发错误:http://prntscr.com/dbd79a。我已经尝试了另一个 scapy 的函数和类作为 IP 和 sendp,它工作正常,问题只是嗅探。
我已经从许多安装链接中尝试了几个版本的 scapy,但没有任何变化。
【问题讨论】:
标签:
python
windows
python-2.7
scapy
【解决方案1】:
您的问题是 scapy 版本 2.3.3 中的错误(于 2016 年 10 月 18 日上传)。
可能会在下一个版本修复,同时你可以安装上一个版本
pip install scapy==2.3.2
我签入了提交,并且该版本中没有此错误。但是我还没有测试它,所以它可能包含其他错误(因为 2.3.3 必须改变了一些东西,至少我希望它这样做了),所以如果你出于某种原因必须使用 2.3.3,你可以像这样修补它:
from scapy.arch.windows import compatibility
from scapy.all import log_runtime, MTU, ETH_P_ALL, PcapTimeoutElapsed, plist
compatibility.log_runtime = log_runtime
compatibility.MTU = MTU
compatibility.PcapTimeoutElapsed = PcapTimeoutElapsed
compatibility.ETH_P_ALL = ETH_P_ALL
compatibility.plist = plist
compatibility.sniff(1) # call the sniff function however you like