用于读取/写入各种数据嗅探器使用的pcap-ng格式的库。
项目描述
Python库,用于解析dumpcap等新版本工具(wireshark、winpcap等)使用的pcap-ng格式。
文档
如果您喜欢RTD主题或需要除最新版本以外的任何版本的文档,请访问此处
http://python-pcapng.readthedocs.org/en/latest/
如果您更喜欢更舒适、页面宽度默认的sphinx主题,文档镜像托管在GitHub页面
CI构建状态
分支 |
状态 |
---|---|
master |
|
develop |
源代码
源代码、问题跟踪器等在GitHub上:https://github.com/rshk/python-pcapng
从git获取源代码
git clone https://github.com/rshk/python-pcapng
下载最新版本的zip文件
https://github.com/rshk/python-pcapng/archive/master.zip
从PyPI安装
pip install python-pcapng
PyPI状态
Python包索引上的官方页面是:https://pypi.python.org/pypi/python-pcapng
为什么需要这个库?
我需要从一些pcap-ng文件中合理地提取一些信息,但显然tcpdump在读取这些文件时存在一些问题,
我没有找到其他很好的工具,也没有找到能够解析此格式的库的Python绑定,所以...
一般来说,似乎有(很多!)Python模块可以解析旧的(简单得多)格式,但没有新的格式。
并且,它们通常完全缺乏任何形式的文档。
这不会很慢吗?
是的,我想它会比用C编写的慢得多,但我比C更擅长Python。
...我需要完成任务,而CPU时间并不那么昂贵 :)
(也许我会尝试将其移植到 Cython 以提高速度,但无论如何,纯 Python 库总是很有用的,例如用于 PyPy)。
如何使用它?
基本使用非常简单,就像
from pcapng import FileScanner
with open('/tmp/mycapture.pcap', 'rb') as fp:
scanner = FileScanner(fp)
for block in scanner:
pass # do something with the block...
查看块文档以了解它们的作用;此外,examples 目录包含一些使用该库的示例脚本。
开发
格式规范在此
https://github.com/pcapng/pcapng/
欢迎贡献,如果您计划进行一些重大更改,请与我联系,以便我们可以确定最佳的集成方式。
或者更好,打开一个问题,让全世界都能参与讨论 :)
Pcap-ng 写支持
自 2.0.0 版本起存在写支持。请参阅文件 examples/generate_pcapng.py 以获取生成 pcapng 文件所需的最小代码示例。
在大多数情况下,此库将防止您创建损坏的数据。如果您想创建边缘化的 pcapng 文件,例如作为其他软件的测试用例,您可以通过调整库的“严格性”来实现,如下所示:
from pcapng.strictness import Strictness, set_strictness
set_strictness(Strictness.FIX)
识别的值有 Strictness.FORBID(默认值),Strictness.FIX(警告问题,如果可能则修复),Strictness.WARN(仅警告)和 Strictness.NONE(无警告)。将导致严格性警告的情况包括
向块添加非重复选项的多个实例
向具有多个接口的文件添加 SPB
写入 PB(PB 已过时,不应在新文件中使用)
在写入任何 IDB 之前写入 EPB/SPB/PB/ISB
创建一个版本
为新版本创建一个标签
git tag v2.0.0 -m 'Version 2.0.0'
在虚拟环境中安装构建依赖项
python -m venv ./.build-venv ./.build-venv/bin/python -m pip install build twine
构建源和 wheel 分发版
rm -rf ./dist *.egg-info ./.build-venv/bin/python -m build
使用 Twine 上传到 PyPI
twine upload dist/*
故障排除
如果您收到一些疯狂的版本号(如 2.0.1.dev0+g7bd8575.d20220310)而不是您预期的版本(例如 2.0.0),那是因为您的本地工作副本中有未提交或未跟踪的文件,或者您在创建标签后创建了更多提交。这样的版本号将被 PyPI(并且它不是一个好的版本号)拒绝,因此在构建之前请确保您有一个干净的工作副本。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源分发
构建分发
python-pcapng-2.1.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6477e72513165954e56d5836ebbd43ac7f8d28c4640f78d63d6506d1692ddc74 |
|
MD5 | ba452d8f0b085735192390016e34232d |
|
BLAKE2b-256 | 3c2f72534730a81205cd3ca32d65b4760c927e6ffc69a3d06ff3d1edda64ae3e |
python_pcapng-2.1.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2c83e9f9f60d61cbb6c86f80fa9e3d722f1bb606a59a64a96d6ba0179d97ffcf |
|
MD5 | fb404d5c5372f26aa10f4b7201adbbbe |
|
BLAKE2b-256 | c6a4141a5fbb51c8e3dee10445d02785d44f8a66a150af6916b4e1776e5065c6 |