python代码scapy库 通过 conf 无法获取信息

Python Scapy在使用中遇到conf.route无具体信息,无法捕获数据包的问题。错误提示为缺少libpcap提供者。问题源于Windows环境下缺失Winpcap。解决方案是安装Wireshark或Winpcap,如有Wireshark找不到网卡的情况,需以管理员权限打开初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python的scapy库 通过 conf 获取的信息无内容

问题

如题,python代码scapy库 无法通过 conf 获取网卡等信息,也捕获不到数据包
出错代码为:
list_of_route = repr(conf.route).split('\n')[1:]
主要的问题出在conf.route没有任何具体信息
展现情况为:

  1. 运行代码时出现WARNING: No libpcap provider available ! pcap won’t be used
  2. 如果用print(conf.route)打印,只有 Network Netmask Gateway Iface Output IP Metric 这一些列表头而已,而没有列表内容
  3. 如果用print(conf.iface)打印,出现的是 Microsoft KM-TEST Loopback Adapter 这个回环适配器网卡,不会展示其他网卡

在 WARNING 里注意到了 libcap,Libpcap是Packet Capture Libray的英文缩写,即数据包捕获开源的C函数库,用于捕获网卡数据或分析pcap格式的抓包报文。于是定位问题出在这个库

正常的conf是什么样的

查找资料,有人介绍:“Lib/site-packages/scapy/config.py下有一个Conf类,主要存储了scapy最主要的一些配置,比如scapy版本、主题颜色、网卡、路由、是否使用npcap、可以在scapy交互环境中使用哪些命令等。在scapy交互环境中可以直接输入conf来查看相应的内容。”
参考:https://blog.csdn.net/austin1000/article/details/100042405

conf本质是Conf类的实例:

命令作用
conf显示conf所有配置
conf.iface主网卡
conf.route获取主路由
conf.commands可在交互环境中使用的命令集合
lsc()同conf.commands
print(conf.route)正常情况下应该输出如下内容
Network          Netmask          Gateway         Iface                                        Output IP        Metric
0.0.0.0          0.0.0.0          25.255.255.254  ZeroTier One Virtual Port                    172.28.33.102    10034
0.0.0.0          0.0.0.0          10.11.91.254    Intel(R) Ethernet Connection (5) I219-V #2   10.11.91.161     25
10.11.91.0       255.255.255.0    0.0.0.0         Intel(R) Ethernet Connection (5) I219-V #2   10.11.91.161     281
10.11.91.161     255.255.255.255  0.0.0.0         Intel(R) Ethernet Connection (5) I219-V #2   10.11.91.161     281
10.11.91.255     255.255.255.255  0.0.0.0         Intel(R) Ethernet Connection (5) I219-V #2   10.11.91.161     281
127.0.0.0        255.0.0.0        0.0.0.0         Npcap Loopback Adapter                       127.0.0.1        281
127.0.0.1        255.255.255.255  0.0.0.0         Npcap Loopback Adapter                       127.0.0.1        281

很明显,找不到这些信息。

解决办法

解决办法很简单,安装一个wireshark软件,或者安装一个winpcap(在windows环境下),因为Windows平台需要安装 Winpcap 才能进行嗅探sniff

如果 wireshark 提示找不到网卡,使用管理员权限打开,它会自动初始化,这时就可以进行嗅探了。

参考:
libcap介绍
【Scapy】获取流量包【原创】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值