python3GUI--网络流量分析系统 By:PyQt5
文章目录
- 一.前言
- 二.基础
- 1.PyQt5
- 2.Scapy
- 3.pyqtgraph
- 3.功能简览
- 三.预览
- 1.登录注册页
- 2.首页
- 3.流量捕获
- 4.流量仪表盘
- 5.流量分析
- 6.拓展功能
- 7.日志管理
- 四.心得体会
- 1.软件原理
- 五.总结
软件未打包,需要源码私聊作者!
一.前言
今天使用PyQt5开发一款网络流量分析系统,这个系统能够帮我们分析本机的网络流量,采用多种可视化的方案展示分析结果,主要包含基础功能和扩展功能,有独立的用户管理系统,高级的界面风格。
二.基础
为了不同技术层次的读者阅读本篇,在此加入基础模块,更详细的让读者了解本次开发基础。
1.PyQt5
本次界面设计方面使用的是PyQt5
PyQt5 是一个功能强大的 Python 库,用于创建跨平台桌面图形用户界面 (GUI)。它是 Qt 应用框架的 Python 绑定,由 Riverbank Computing 开发和维护
安装
pip install PyQt5
2.Scapy
使用此包进行网络流量的抓取
Scapy 是一个功能强大的 Python 网络工具库,用于网络数据包的创建、解析、捕获和传输。它支持多种协议,能够灵活地进行网络分析、入侵测试和故障排查。通过简单的命令,用户可以轻松构建自定义数据包、发送并监听网络流量,还能对捕获的流量进行分析,非常适合网络工程师、安全研究人员和开发者使用。
安装
pip install scapy
3.pyqtgraph
使用此包进行网络流量数据可视化展示
PyQtGraph是一个为PyQt/PySide构建的功能强大的2D/3D图形和数据可视化工具包。它利用了GraphicsView框架来提供高性能的绘图和绘图接口。
安装
pip install pyqtgraph
3.功能简览
在此绘制一张思维导图展示所有功能
三.预览
下面我将截图展示一下本次系统的主要功能
1.登录注册页
本次设计了炫酷的登录注册页面,采用彩虹灯带作为按钮的边框,软件整体蓝色科技风格
2.首页
登录后进入首页,首页就是软件整体功能页了
3.流量捕获
因为前面用思维导图介绍了大致的功能,这里就介绍详细的功能
点击开始捕获,软件自动捕获本机的流量数据展示到表格里,不同协议的流量采用不同颜色的背景色,捕获的流量为七元组。
流量七元组是指在网络通信中用于唯一标识一个数据包的七个关键信息元素,包括:源IP地址、目的IP地址、协议号、源端口、目的端口、服务类型以及接口索引。
4.流量仪表盘
这里分别展示当前的上行和下行速率,数据是实时的。
5.流量分析
我们采用多维度的方式对捕获的流量进行分析,使用不同颜色区分不同的数据。
6.拓展功能
这里仅拿一个拓展功能进行演示
演示的是“测试网段”,就是根据输入的IP和子网掩码对指定网段的地址进行扫描,这里采用了多线程,界面不会卡顿,开启了20个线程,效率很高。
下方实时的日志输出,勾选自动滚动到最底部后日志实时输出在最底部,最后是打印结果。
7.日志管理
这里展示登录日志管理功能
四.心得体会
1.软件原理
这款网络流量分析软件使用PyQt5手搓代码绘制页面,每个组件都是可以单独拆开放到别的项目里的,大大保证了我们的代码灵活。使用Scapy 进行网络接口数据包捕获,配合python效率高,使用pyqtgraph设计了多种可视化方案,尽可能浅显的多维度的让用户理解当前的流量数据。
五.总结
本次使用PyQt5开发了一款网络流量分析系统,里面包含多个功能和页面,精心设计的具有科技感的登录注册界面能带给用户更好的使用体验,本次代码没有打包,需要代码的朋友可以私聊我。