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, 数据包抓取, 数据可视化, 网络嗅探器, 网络安全, 网络流量分析, 逆向工具, 防御绕过, 隐私保护