Pyshark中LiveCapture接口参数在Windows系统的取值问题
解决Windows下Pyshark网卡参数填写问题
首先明确:Windows系统下Pyshark不使用Linux的ethX命名规则,直接填写数字序号也不属于有效取值。
1. 获取本机可用网卡标识
运行以下代码即可列出所有Pyshark可识别的网卡信息:
import pyshark print(pyshark.LiveCapture().interfaces)
输出结果中会包含每个网卡的描述、UUID格式的完整接口路径、以及可选的别名(比如“以太网”“WLAN”这类中文名称),找到你正在使用的活跃网卡对应的值,直接填到interface参数里即可。
常见的有效取值格式有两种,都可以正常使用:
- 完整UUID路径:
\Device\NPF_{23A41B78-XXXX-XXXX-XXXX-XXXXXXXXXXXX} - 网卡别名:
"WLAN"或者"以太网"
2. 修正后的代码示例
你原有代码存在两处错误:一是网卡参数错误,二是异常分支的LiveCapture变量未定义,逻辑无效。修正后的代码如下:
import pyshark # 替换成你自己查到的网卡标识 capture = pyshark.LiveCapture(interface='你查到的网卡名称') for packet in capture.sniff_continuously(packet_count=5): try: print('Source = ' + packet['ip'].src) print('Destination = ' + packet['ip'].dst) except AttributeError: # 过滤非IP包 pass print("~Fin~") exit()
3. 注意事项
- 运行脚本时必须以管理员权限启动终端/IDE,否则没有抓包权限会导致无输出
- 抓包过程中可以主动产生一些网络请求(比如刷新网页、发个消息),触发IP包生成就能看到输出
内容的提问来源于stack exchange,提问作者N S
相关产品推荐
相关产品推荐

