一个用于解析pcap文件的python库
Project description
pypcaptools
pypcaptools 是一个功能强大的 Python 库,用于解析 pcap 文件,并将结构化的网络流量数据高效地存入 MySQL 数据库,专为现代网络流量指纹分析场景设计。
核心功能 🚀
-
现代化数据库架构
- 采用 Trace - Flow - Resource 三层表结构,清晰地描述了“一次完整的访问”、“访问中的网络流”以及“网络流中加载的应用资源”之间的关系。
- 使用
JSON数据类型存储时间戳、数据包大小和方向序列,既高效又灵活。
-
关联数据处理
- 不再局限于
pcap文件,现在能够协同处理pcap文件和一个关联的json文件(例如,通过浏览器插件或mitmproxy导出的资源加载信息)。 - 这使得将低层的网络流数据与高层的应用资源(如 URL、HTTP 状态码、Content-Type)进行精确关联成为可能。
- 不再局限于
-
高效与稳健
- 核心解析引擎从
dpkt切换到功能更全面的scapy。 - 数据库操作采用上下文管理器(
with语句)和批量插入(executemany),确保了连接安全和卓越的写入性能。
- 核心解析引擎从
数据库设计 📊
新版 pypcaptools 围绕一个基础名称(base_table_name)动态创建三张关联的表,以存储层次化的流量数据。
{base_name}_trace表: 存储一次完整的捕获记录(对应一个pcap文件)。它包含了该次访问的总体元数据和整合后的数据包序列。{base_name}_flow表: 存储trace中的单个网络流(由五元组定义)。通过trace_id与trace表关联。{base_name}_resource表: 存储flow中加载的具体应用层资源(如一个 GET 请求的 URL 和响应)。通过flow_id与flow表关联,其数据主要来源于辅助的json文件。
这种设计极大地增强了数据的可分析性,便于进行复杂的流量指纹研究。
安装
可以通过 pip 安装 pypcaptools:
pip install pypcaptools==2.0
快速开始 ⚡
下面的示例展示了如何使用 PcapToDatabaseHandler 将一个 pcap 文件和其关联的 json 资源文件一同导入数据库。
from pypcaptools import PcapToDatabaseHandler
# 1. 配置数据库连接
db_config = {
"host": "localhost",
"port": 3306,
"user": "root",
"password": "your_password",
"database": "your_traffic_db",
}
# 2. 初始化处理器
# 它会自动创建或连接到 direct_traffic_trace, direct_traffic_flow,
# 和 direct_traffic_resource 这三张表。
handler = PcapToDatabaseHandler(
db_config=db_config,
base_table_name="direct_traffic",
input_pcap_file="captures/google.com.pcap",
input_json_file="captures/google.com.json",
protocol="HTTPS",
accessed_website="google.com",
collection_machine="local-dev-machine"
)
# 3. 执行处理和入库操作
# 该方法会完成所有解析、关联和数据库插入工作。
success = handler.pcap_to_database()
if success:
print("✅ 成功将 PCAP 和 JSON 数据导入数据库。")
else:
print("❌ 导入数据失败,请检查日志。")
贡献指南
如果你对 pypcaptools 感兴趣,并希望为项目贡献代码或功能,欢迎提交 Issue 或 Pull Request!
许可证
本项目基于 MIT License 许可协议开源。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypcaptools-2.0.tar.gz.
File metadata
- Download URL: pypcaptools-2.0.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a186e371a4fd75e38914d0f11f894ce5f886e19993a24db551f11b7e07d976a6
|
|
| MD5 |
ba1c07ae4855d7632e9ba8ed12336bf4
|
|
| BLAKE2b-256 |
7bf54cad3eb899c43b38b08a3ad1a18b624c2d2e33d8a6910ddf0fda492f8396
|
File details
Details for the file pypcaptools-2.0-py3-none-any.whl.
File metadata
- Download URL: pypcaptools-2.0-py3-none-any.whl
- Upload date:
- Size: 27.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f5bb30777f770e446dbc03f0eb5b26679de3904071fc642fd2de0337dc0bc9b
|
|
| MD5 |
1eb45fbc1e78a1afd302fc682ff1261b
|
|
| BLAKE2b-256 |
1da02ae38abd59f830b6b6e88ba8c69e3bf7e692d7169ed35096971c82d1367c
|