# pcap-vision **Repository Path**: a1294492238/pcap ## Basic Information - **Project Name**: pcap-vision - **Description**: 这是一个专业的 PCAPNG/PCAP 抓包文件分析工具(版本 v1.1.0),用于解析和分析网络数据包。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-25 - **Last Updated**: 2026-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PCAPNG 抓包分析工具 一个专业的 PCAPNG/PCAP 抓包文件分析工具,支持桌面窗口模式和浏览器模式,提供完整的网络数据包解析、分析和导出功能。 ## ✨ 核心特性 - **📁 文件上传**: 支持 .pcapng 和 .pcap 格式的抓包文件(最大 500MB) - **🔍 HTTP 请求分析**: 自动识别和解析 HTTP/HTTPS 请求,显示完整的请求/响应信息 - **📊 网络层统计**: IP地址分布、端口使用、协议分布等多维度统计 - **🎯 智能过滤**: 支持按协议、IP、HTTP方法、状态码、URL关键字等多条件过滤 - **📈 数据可视化**: 丰富的图表展示(饼图、柱状图、折线图) - **💾 灵活导出**: 支持 CSV、JSON、Excel 格式导出,桌面模式下可选择保存位置 - **🖥️ 双模式运行**: - 桌面窗口模式(推荐)- 独立应用,关闭窗口即退出 - 浏览器模式 - 在系统浏览器中访问 ## 🛠️ 技术栈 ### 后端 - **Python 3.9+** - 编程语言 - **FastAPI** - 高性能异步 Web 框架 - **Uvicorn** - ASGI 服务器 - **Scapy** - 强大的数据包处理库 - **Pandas** - 数据分析与处理 - **PyWebview** - 桌面窗口渲染引擎 ### 前端 - **React 18 + TypeScript** - 现代化前端框架 - **Ant Design** - 企业级 UI 组件库 - **ECharts** - 强大的数据可视化库 - **Axios** - HTTP 客户端 - **Vite** - 快速的前端构建工具 ## 🚀 快速开始 ### 方式一:直接使用打包版本(推荐) 1. **下载最新版本** - 桌面窗口版:`dist/PCAPNGAnalyzer.exe` - 浏览器版:`dist/PCAPNGAnalyzer_browser.exe` 2. **双击运行** - 桌面窗口版会自动打开独立窗口 - 浏览器版会在系统浏览器中打开 http://localhost:8000 3. **开始使用** - 上传 PCAPNG/PCAP 文件 - 查看分析结果 - 导出需要的数据 > 💡 **提示**:首次运行桌面窗口版可能需要安装 Microsoft Edge WebView2 Runtime(Windows 10/11 通常已预装) --- ### 方式二:源码运行 #### 后端设置 1. 进入后端目录: ```bash cd backend ``` 2. 创建虚拟环境(可选但推荐): ```bash python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate ``` 3. 安装依赖: ```bash pip install -r requirements.txt ``` 4. 启动服务: **桌面窗口模式**(推荐): ```bash python app_window.py ``` **浏览器模式**: ```bash python app.py ``` 然后访问 http://localhost:8000 #### 前端开发(仅开发者需要) 1. 进入前端目录: ```bash cd frontend ``` 2. 安装依赖: ```bash npm install ``` 3. 启动开发服务器: ```bash npm run dev ``` 前端应用将在 http://localhost:5173 启动 ## 📖 使用说明 1. **上传文件**: 在首页拖拽或点击上传 PCAPNG/PCAP 文件 2. **查看请求列表**: 上传完成后自动显示 HTTP 请求列表,包含方法、URL、状态码、响应时间等信息 3. **查看详情**: 点击表格行查看请求的完整信息: - 请求头 / 响应头 - 请求体 / 响应体(支持文本和原始字节查看) - 完整的网络层信息 4. **过滤数据**: 使用左侧过滤面板按条件筛选: - 协议类型(HTTP/HTTPS/TCP/UDP等) - HTTP 方法(GET/POST/PUT/DELETE等) - 状态码范围 - IP 地址 - URL 关键字 5. **统计分析**: 切换到“统计分析”标签页查看: - 协议分布饼图 - IP 地址统计 - 请求趋势折线图 6. **导出数据**: 点击右上角导出按钮,选择格式: - CSV - 适合 Excel 打开 - JSON - 适合程序处理 - Excel - 完整的电子表格格式 - 💡 桌面模式下会弹出保存对话框,可选择保存位置 ## 🔌 API 接口 ### 核心接口 - `POST /api/upload` - 上传并解析 PCAPNG/PCAP 文件 - `GET /api/requests` - 获取 HTTP 请求列表(支持分页和过滤) - `GET /api/requests/{id}` - 获取单个请求的详细信息 - `GET /api/requests/{id}/body` - 获取完整的请求体或响应体内容 - `GET /api/statistics` - 获取综合统计信息 - `GET /api/protocols` - 获取协议分布数据 - `GET /api/ip-stats` - 获取 IP 地址统计数据 - `POST /api/export` - 导出数据(CSV/JSON/Excel) - `GET /api/diagnose` - 诊断会话数据(调试用) ### 查询参数示例 ```bash # 获取请求列表,带过滤条件 GET /api/requests?session_id=xxx&page=1&page_size=50&method=GET&status_code=200 # 导出为 Excel 格式 POST /api/export?session_id=xxx&format=excel ``` ## 📁 项目结构 ``` pcg/ ├── backend/ # 后端代码 │ ├── app.py # FastAPI 主应用(浏览器模式) │ ├── app_window.py # 桌面窗口启动器 │ ├── requirements.txt # Python 依赖 │ ├── parsers/ # 数据包解析器 │ │ └── pcapng_parser.py # PCAPNG/PCAP 文件解析 │ ├── analyzers/ # 数据分析模块 │ │ ├── http_analyzer.py # HTTP 请求分析 │ │ └── network_analyzer.py # 网络层统计 │ ├── filters/ # 数据过滤器 │ │ └── packet_filter.py # 多维度过滤 │ └── exporters/ # 数据导出器 │ └── data_exporter.py # CSV/JSON/Excel 导出 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── components/ # React 组件 │ │ │ ├── FileUpload.tsx # 文件上传 │ │ │ ├── RequestTable.tsx # 请求列表 │ │ │ ├── RequestDetail.tsx # 请求详情 │ │ │ ├── FilterPanel.tsx # 过滤面板 │ │ │ └── StatisticsChart.tsx # 统计图表 │ │ ├── services/ # API 服务封装 │ │ └── types/ # TypeScript 类型定义 │ └── package.json ├── build.spec # PyInstaller 打包配置 ├── build_exe.bat # 一键打包脚本 ├── README.md # 项目说明 ├── QUICKSTART.md # 快速开始指南 └── STARTUP_GUIDE.md # 启动方式说明 ``` ## ⚙️ 打包说明 ### 使用打包脚本 ```bash # Windows build_exe.bat ``` ### 手动打包 ```bash # 1. 构建前端 cd frontend npm run build # 2. 打包为 exe cd .. pyinstaller build.spec ``` 打包后的文件位于 `dist/` 目录 ## ⚠️ 注意事项 - **文件大小限制**: 最大支持 500MB 的抓包文件 - **支持格式**: .pcapng, .pcap - **端口占用**: 程序使用 8000 端口,如被占用请关闭其他使用该端口的程序 - **防火墙提示**: 首次运行时可能会弹出防火墙提示,请选择“允许访问” - **WebView2 Runtime**: 桌面窗口模式需要 Microsoft Edge WebView2 Runtime(Windows 10/11 通常已预装) - **大文件处理**: 解析大型抓包文件可能需要较长时间,请耐心等待 - **生产环境**: 如需在生产环境使用,建议配置 CORS、认证和 HTTPS ## 📝 更新日志 ### v1.1.0 (2026-06-25) - ✨ 新增桌面窗口模式(基于 pywebview) - ✨ 导出功能支持文件保存对话框 - 🐛 修复静态文件路由冲突问题 - 🐛 修复打包后日志配置错误 - 🐛 修复模块导入缺失问题 - 🧹 清理项目测试文件和临时文件 ### v1.0.0 (2026-06-17) - 🎉 初始版本发布 - 支持 PCAPNG/PCAP 文件上传和解析 - HTTP/HTTPS 请求分析 - 多维度数据过滤 - 统计图表可视化 - CSV/JSON/Excel 导出 ## License MIT