解决Windows 10下python安装pypcap失败的问题

先说结论,直接使用pcap-ct。

 

因为项目需求需要在windows下抓包,用python编程。所以就找相关的轮子。找到了三个:

1、pypcap(pip install pypcap)

2、libpcap(pip install libpcap)

3、pcap-ct(pip install pcap-ct)

那么,这三个有啥区别呢?其实从底层来说,都是基于C libpcap的python封装,无非是使用方便不方便的问题。

pypcap对C libpcap封装后,提供了pythonic的API接口;

而libpcap就比较简单粗暴了,根据官网说法:

libpcap is a lightweight Python package, based on the ctypes library.

It is fully compliant implementation of the original C libpcap from 1.0.0 up to 1.9.0 API and the WinPcap's 4.1.3 libpcap (1.0.0rel0b) API by implementing whole its functionality in a clean Python instead of C.

就是说即使是python的实现,也完全兼容WinPcap 4.1.3的API,比较复杂难用(不然我为啥用python???);

pcap-ct兼容pypcap的API,并且简化了安装并修复了BUG。

坑就是!!!:

在Win10上,我先安装了Npcap(win10要Npcap,WinPcap有兼容性问题),勾选了WinPcap兼容,下载Npcap-SDK和pypcap源码放在同一目录,然后再pypcap目录下 python setup.py install,源码编译安装pypcap(需要电脑安装visual studio 2015以上版本,有编译依赖)。结果安装完成后发现有bug,python程序可以发现网络接口,一抓包就闪退,还不报错。

然后安装libpcap,可以抓包,但接口实在太难用,就想有没有其他方法。

然后想着要不试一下pcap-ct,结果真香,直接pip安装就行,还没乱七八糟的依赖,我要给作者点赞!

参考:

1、Python之pypcap库的安装及简单抓包工具的实现

你可能感兴趣的:(乱披风)