我一直很高兴地使用一些 python 来生成原始以太网帧,并使用带有 winpcapy 的 Python 3.5.2 在 Windows 7 上将它们发送到一个选择的接口。我刚刚安装了 Python 3.7.4,现在在尝试运行相同的代码时收到错误消息。
import ctypes
import winpcapy
import sys
errbuf = ctypes.create_string_buffer(winpcapy.PCAP_ERRBUF_SIZE)
alldevs = ctypes.POINTER(winpcapy.pcap_if_t)()
winpcapy.pcap_findalldevs(ctypes.byref(alldevs), errbuf)
device = alldevs.contents
interfaces = []
while True:
interfaces.append(device)
if not device.next:
break
device = device.next.contents
print(interfaces)
在 3.5 中运行的代码片段会打印找到的接口列表。但是,如果我在 3.7 中运行它,我会得到:
Traceback (most recent call last): File "Z:\proj\eth\socket.py", line 5, in
<module> errbuf = ctypes.create_string_buffer(winpcapy.PCAP_ERRBUF_SIZE)
AttributeError: module 'winpcapy' has no attribute 'PCAP_ERRBUF_SIZE'
现在,我可以用整数值替换“PCAP_ERRBUF_SIZE”,但随后我遇到了进一步的问题,看起来我在 3.7 中使用 winpcapy 的方式通常有问题。有没有其他人遇到过这类问题?
MMMHUHU
相关分类