JarryShaw/PyPCAPKit
GitHub: JarryShaw/PyPCAPKit
PyPCAPKit 是一个基于 Python 的功能全面的网络数据包分析库,专注于 PCAP 文件的提取、构建与深度解析。
Stars: 262 | Forks: 33
# PyPCAPKit - 综合网络数据包分析库
如需任何技术和/或维护信息,
请参阅 |docs|_。
.. |docs| replace:: **官方文档**
.. _docs: https://jarryshaw.github.io/PyPCAPKit/
PyPCAPKit 项目是一个专注于网络数据包
解析和分析的开源 Python 程序,它作为一个全面的 `PCAP`_ 文件提取、
构建和分析库运作。
## 整个项目支持 **Python 3.6** 或更高版本。
## 关于
PyPCAPKit 是一个全面的 Python 原生网络数据包分析库,
使用 `DictDumper`_ 作为其格式化输出转储器。
与流行的 PCAP 文件提取器(如 `Scapy`_、`DPKT`_、`PyShark`_
等)不同,``pcapkit`` 的设计更加全面,这意味着
它能够提供有关数据包的更详细信息,并为用户提供
更具 *Pythonic* 风格的交互接口。
## 模块结构
在 ``pcapkit`` 中,所有文件可以描述为以下八个部分。
- 接口 (``pcapkit.interface``)
``pcapkit`` 库的用户界面,用于
标准化并简化该库的使用。
- 基础 (``pcapkit.foundation``)
综合文件 I/O 和协议分析,协调
所有网络层中的信息交换,并为 ``pcapkit`` 提供基础功能。
- 协议 (``pcapkit.protocols``)
所有协议族的集合,包含详细的
实现和方法。
- 工具 (``pcapkit.utilities``)
``pcapkit`` 的辅助函数和工具。
- 核心工具包 (``pcapkit.corekit``)
``pcapkit`` 实现的核心工具,主要用于
内部数据处理和数据结构。
- 工具包 (``pcapkit.toolkit``)
``pcapkit`` 的辅助工具,支持通过统一接口
使用多种提取引擎。
- 转储工具包 (``pcapkit.dumpkit``)
``pcapkit`` 的文件输出格式化程序。
- 常量 (``pcapkit.const``)
``pcapkit`` 中使用的常量枚举,用于协议族的提取和表示。
## 引擎对比
由于 ``pcapkit`` 的一般开销,其提取过程
大约每个数据包耗时 *0.2* 毫秒,这虽然令人印象深刻,但考虑到 ``pcapkit`` 是一个**全面**的数据包处理模块,与市场上其他流行的提取引擎相比还不够快。
此外,``pcapkit`` 引入了替代提取引擎来加速
此过程。目前 ``pcapkit`` 支持 `Scapy`_、`DPKT`_ 和 `PyShark`_。
### 测试环境
.. list-table::
* - 操作系统
- macOS Ventura 13.4.1
* - 芯片
- Apple M2 Pro
* - 内存
- 16 GB
### 测试结果
============= ===========================
引擎 性能 (毫秒/数据包)
============= ===========================
``dpkt`` 0.010390_056723
``scapy`` 0.091690_233567
``pcapkit`` 0.200390_390390
``pyshark`` 24.682185_018351
## ============= ===========================
## 安装
.. note::
``pcapkit`` 支持 **3.6 及以上** 的 Python 版本。
只需运行以下命令即可从 PyPI 安装当前版本:
.. code-block:: shell
pip install pypcapkit
或者从 git 仓库安装最新版本:
.. code-block:: shell
git clone https://github.com/JarryShaw/PyPCAPKit.git
cd pypcapkit
pip install -e .
# 并可随时更新
git pull
由于 ``pcapkit`` 支持多种提取引擎和广泛的
插件功能,您可能需要安装可选组件:
.. code-block:: shell
# 仅安装 DPKT
pip install pypcapkit[DPKT]
# 仅安装 Scapy
pip install pypcapkit[Scapy]
# 仅安装 PyShark
pip install pypcapkit[PyShark]
# 安装所有可选包
pip install pypcapkit[all]
# 或显式执行此操作
pip install pypcapkit dpkt scapy pyshark
对于 CLI 用法,您需要安装可选包:
.. code-block:: shell
pip install pypcapkit[cli]
# 或显式安装...
pip install pypcapkit emoji
.. _PCAP: https://en.wikipedia.org/wiki/Pcap
.. _Scapy: https://scapy.net
.. _DPKT: https://dpkt.readthedocs.io
.. _PyShark: https://kiminewt.github.io/pyshark
.. _DictDumper: https://github.com/JarryShaw/DictDumper
标签:DPKT替代, PCAP, Scapy替代, 二进制发布, 协议分析, 协议栈, 开源工具, 数据包解析, 文件提取, 权限提升, 流量取证, 网络嗅探, 网络安全, 网络流量分析, 网络编程, 逆向工具, 隐私保护