arjunpmohan/BasicNetworkSniffer

GitHub: arjunpmohan/BasicNetworkSniffer

一个基于 Python Scapy 和 Flask 构建的轻量级 Web 数据包嗅探器,通过可视化仪表盘实时捕获、展示和分析网络流量。

Stars: 0 | Forks: 0

# 基于 Web 的数据包嗅探器与网络流量分析器 一个完全适合初学者的网络安全项目,使用 Python (Scapy) 捕获实时网络数据包,并通过 Flask 和 Bootstrap 在现代化的实时 Web 仪表盘中展示它们。 ## 功能 - **实时捕获**:异步捕获数据包,不会阻塞服务器。 - **实时仪表盘**:自动刷新的统计数据、流量时间轴图表和协议分布图。 - **数据包表格**:查看最新的 100 个数据包及其详细信息(时间戳、IP、端口、协议、长度)。 - **过滤与搜索**:快速搜索特定 IP 或按协议(TCP、UDP、ICMP)进行过滤。 - **导出数据**:将所有数据包记录到 SQLite 数据库中,并支持将整个会话导出为 CSV。 ## 项目结构 ``` packet-sniffer/ ├── app.py # Flask server and API endpoints ├── sniffer.py # Scapy packet capture running in a background thread ├── database.py # SQLite database management ├── requirements.txt # Python dependencies ├── templates/ │ └── index.html # Frontend dashboard UI └── static/ ├── style.css # Dark theme styling └── script.js # Frontend logic and charts ``` ## 安装与设置 ### 1. 前置条件 - 已安装 **Python 3.8+**。 - **Npcap** 或 **WinPcap**(Windows 必需)。在[此处](https://npcap.com/)下载 Npcap,并确保在安装过程中勾选“Install Npcap in WinPcap API-compatible Mode”(以兼容 WinPcap API 的模式安装 Npcap)。 ### 2. 安装依赖 打开你的终端或命令提示符并运行: ``` pip install -r requirements.txt ``` ### 3. 运行应用程序 **重要提示**:Scapy 需要 administrator/root 权限才能捕获网络接口。 - **Windows**:以 **Administrator** 身份打开命令提示符或 PowerShell,导航到项目文件夹,然后运行: python app.py - **Linux/macOS**:使用 `sudo` 运行: sudo python3 app.py ### 4. 访问仪表盘 打开你的 Web 浏览器并访问: `http://127.0.0.1:5000` ## 故障排除 - **没有捕获到数据包?** 请确保你正以 Administrator/Root 身份运行脚本。 - **"RuntimeError: Sniffing requires Npcap" (Windows)**:安装 Npcap 并重启你的计算机。 - **服务器未启动?**:确保端口 5000 没有被其他应用程序占用。 ## 未来增强功能 - 实现 PCAP 文件的导入/导出。 - 为应用层协议(HTTP、DNS)添加高级 DPI (Deep Packet Inspection)。 - 添加地理位置 IP 映射。
标签:Flask, Scapy, 数据包抓取, 数据可视化, 网络嗅探器, 网络安全, 网络流量分析, 逆向工具, 防御绕过, 隐私保护