请教一下关于使用 Python 的 scapy 库通过 npcap 驱动抓包时遇到的无法抓取无线网卡流量的问题
資深大佬 : EtherShark 5
最近参照网上的 scapy 库的使用方法写了一个用于抓取所有数据包的脚本,一开始一切正常,但是后来为了测试没有安装驱动的情况下可以输出需要安装驱动,而不是直接报错,于是把 npcap 驱动反复安装卸载多次,就遇到了这个问题: 电脑在连着无线网的时候脚本就抓不到数据包,但是连着有线网就可以抓到。与此同时,wireshark 却一切正常,无论是无线还是有线都可以抓到包。
之后尝试了
- 用 ccleaner 清理注册表;
- 安装 winpcap 驱动替换 npcap ;
- 自己去注册表搜索 npcap 字样的项,并通通删除;
- 去 system32 与 syswow64 目录下删除 Npcap 目录,与 wpcap.dll 和 packet.dll 文件,以及 drivers 目录下的 npcap.sys 和 npfs.sys 和 npf.sys 文件
但是反复卸载重装后问题依然无法解决,只能抓取有线网卡的数据包,无法抓取无线网卡的数据包。 以下是代码:
from scapy.all import * import time def countfun(packet): global n n += 1 print(n) if not IFACES.data: print("Need install npcap driver") else: print("Capturing...") n = 0 dpkt = sniff(prn=countfun, count=0) capfile = time.strftime("%Y%m%d%H%M", time.localtime()) + ".pcap" print(n,"packets captured") if n != 0: wrpcap(capfile, dpkt) print("Saved in " + capfile)
大佬有話說 (2)