这是一个用Python开发的网络监控软件,功能类似于Wireshark。它可以捕获进出本机的网络数据包,并进行统计分析和可视化展示。
- 可视化界面 (GUI):基于PyQt5开发,界面友好。
- 数据包捕获:使用Scapy库实时捕获网络数据包。
- 数据包详细信息:在GUI中逐字段展开展示数据包的详细信息。
- 过滤器:支持简单的过滤器设计,如
tcp,udp,ip等。 - 统计分析:
- IPv4和IPv6报文的饼图统计
- TCP、UDP、ARP报文的柱状图
- DNS报文占比随时间变化的折线图
- 数据保存与加载:支持将捕获的数据保存为PCAP文件,并重新加载。
- 资源监控:实时监控应用程序的CPU和内存使用情况,并记录日志。
-
克隆仓库:
git clone https://github.com/yourusername/network_monitor.git cd network_monitor -
创建虚拟环境(可选但推荐):
python -m venv venv source venv/bin/activate # 在Windows上使用 venv\Scripts\activate
-
安装依赖:
pip install -r requirements.txt
-
运行应用程序:
python main.py
注意:捕获网络数据包通常需要管理员权限,请确保以管理员身份运行程序。
- 开始捕获:在菜单栏中点击“开始捕获”按钮,开始实时捕获网络数据包。
- 停止捕获:点击“停止捕获”按钮,停止数据包捕获。
- 应用过滤器:在过滤器输入框中输入过滤条件(如
tcp),然后点击“应用过滤”按钮。 - 查看详细信息:在数据包列表中选择一个数据包,详细信息将在下方显示。
- 保存数据:点击“保存数据”按钮,将当前捕获的数据包保存为PCAP文件。
- 加载数据:点击“加载数据”按钮,从PCAP文件中加载并展示已保存的数据包。
- 查看统计和资源使用:统计图表和资源监控信息将在界面中实时更新。
- 权限:捕获网络数据包需要管理员权限,确保程序具有相应权限。
- 性能:Python在处理高频率的数据包时性能可能不足,必要时可以优化代码或使用更高效的库。
- 安全性:处理网络数据包时注意安全,避免处理恶意数据包导致程序崩溃。
- 跨平台:确保所使用的库在目标操作系统上兼容,特别是捕获数据包的库。