在新安装Python2.7.14和scapy(版本git-archive.dev254ab6d5a)后,我无法将我的LAN卡定义为接口。只要iface = None,嗅探功能就可以了。如果我将iface分配给字符串,我会得到以下错误。对于此错误,我没有在谷歌上发现任何帖子:/。
代码:
#Import all necessary scapy functionality from ethernet Api
from Lib.IHR_EthApi import *
from Lib.IHR_GeneralApi import GeneralApi as SYS
from scapy.all import *
FullTrafficList = []
#show_interfaces()
scapy.all.sniff(lfilter=None, iface="Realtek PCIe GBE Family Controller", store=True, prn = lambda x: FullTrafficList.append(x), count=10, timeout= None)
SYS.IHR_print(str(FullTrafficList))
错误描述:
> Traceback (most recent call last): File
> "c:\Users\Evgenij\Desktop\Desktop\Eth_Test_Dev\Code\Test.py", line 8,
> in <module>
> scapy.all.sniff(lfilter=None, iface="Realtek PCIe GBE Family Controller", store=True, prn = lambda x: FullTrafficList.append(x),
> count=10, timeout= None) File
> "C:\Python27\Lib\site-packages\scapy\sendrecv.py", line 708, in sniff
> *arg, **karg)] = iface File "C:\Python27\Lib\site-packages\scapy\arch\pcapdnet.py", line 198, in
> __init__
> self.ins = open_pcap(iface, 1600, self.promisc, 100, monitor=monitor) File
> "C:\Python27\Lib\site-packages\scapy\arch\windows\__init__.py", line
> 856, in open_pcap
> if iface.ismonitor(): AttributeError: 'str' object has no attribute 'ismonitor'
答案 0 :(得分:1)
我有几个小时同样的问题。这就是我为解决它而做的。
请确保您拥有最新版本的scapy和最新版本的npcap。安装npcap时,单击选项以打开监视器模式。我也在scapy文档网站上找到了这个
Winpcap / Npcap冲突
随着Winpcap变老,建议使用Npcap代替。 Npcap是Nmap项目的一部分。
如果您收到消息'Winpcap已安装在Npcap上',则表示您已经安装了winpcap和npcap版本,这是不推荐的。 您可以从Program Files中卸载winpcap,然后您将需要删除:
C:/Windows/System32/wpcap.dll
C:/Windows/System32/Packet.dll
如果您使用的是x64机器:
C:/Windows/SysWOW64/wpcap.dll
C:/Windows/SysWOW64/Packet.dll
改为使用npcap。 Winpcap卸载程序不会删除这些文件。
在我这样做之后,我使用
列出了接口 show_interfaces()
iface = raw_input("Enter the interface to sniff on: ")
将界面复制并粘贴到输入
中答案 1 :(得分:0)
通过降级Wireshark版本解决了我的问题。但我想真正的问题是npcap(v0.98)和Python(v2.7.14)之间的兼容性。 不幸的是我不明白&#34; ismonitor = True&#34;的用法。参数,但如果它应该是兼容性问题,我们将很快阅读它:)