Skip to content

XUNRANA/PyNetworkCapture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

基于 Python 的网络流量捕获与可视化分析系统

Network Traffic Capture and Visualization Analysis System

Python GUI Network Status

📖 项目简介 (Introduction)

本项目是一个轻量级、模块化的网络流量捕获与分析工具,旨在实现类似 Wireshark 的核心抓包功能,并侧重于数据流量的可视化呈现协议逻辑的深度解析

系统基于 Python 3 开发,采用 Scapy 作为底层数据包处理引擎,结合 PySide6 (Qt for Python) 构建高性能图形界面,并集成 Matplotlib 实现实时的流量统计图表。相较于传统商业软件,本系统具有轻量化、部署灵活、源码易读等特点,适合网络协议分析、网络安全教学及二次开发研究。

功能对比

图 1-1 现有工具与本系统特性对比分析


✨ 核心功能 (Features)

  • 🛡️ 实时数据包捕获:基于 Npcap/Libpcap 底层驱动,支持多网卡实时混杂模式抓包。
  • 🔍 多层协议解析
    • 支持 Ethernet, ARP, IPv4, ICMP, TCP, UDP, HTTP, DNS 等主流协议。
    • 提供可视化的协议解析树 (Protocol Tree) 视图。
  • 🎨 智能色彩映射:根据协议类型自动匹配背景色(如 TCP:淡紫, UDP:杏色, HTTP:浅黄),提升分析效率。
  • 📊 动态可视化
    • 基于时间桶算法的实时流量 IO 趋势图。
    • 协议分布占比饼图/统计图。
  • ⚡ 高性能架构:采用多线程 + 队列缓冲机制,防止高并发流量下的界面冻结。

🏗️ 系统架构 (Architecture)

1. 技术架构栈

系统采用分层设计,整合了底层驱动、Python 解释器、协议处理库及 GUI 框架。 技术架构

图 2-3 系统技术架构层次图

2. 软件分层设计 (MVC)

遵循 Model-View-Controller 模式,实现数据处理与界面显示的解耦。 分层架构

图 4-1 系统分层架构设计图

3. 多线程通信机制

利用 Qt 的 Signal/Slot (信号槽) 机制实现后台抓包线程与主界面线程的异步通信。 多线程通信

图 2-2 基于 Qt 信号槽的多线程通信机制


🛠️ 安装与运行 (Installation)

1. 环境要求

  • 操作系统: Windows 10/11 (推荐) 或 Linux (Ubuntu 20.04+)
  • Python: 3.9 或更高版本

2. 必装驱动 (重要!)

本系统依赖底层网络驱动,必须安装以下驱动之一才能抓包:

  • Windows 用户: 下载并安装 Npcap
    • 注意:安装时务必勾选 "Install Npcap in WinPcap API-compatible Mode"
  • Linux 用户: 安装 Libpcap 开发包 sudo apt-get install libpcap-dev

3. 安装依赖库

在项目根目录下运行终端:

pip install -r requirements.txt

About

Network Traffic Capture and Visualization System

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages