当前位置: 首页 > article >正文

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开发了一款网络流量分析系统,里面包含多个功能和页面,精心设计的具有科技感的登录注册界面能带给用户更好的使用体验,本次代码没有打包,需要代码的朋友可以私聊我。
在这里插入图片描述


http://www.kler.cn/a/463460.html

相关文章:

  • 什么是.net framework,什么是.net core,什么是.net5~8,版本对应关系
  • C++访问数据库
  • 树莓派 Pico RP2040 教程点灯 双核编程案例
  • Linux中隐藏操作身法
  • DDoS攻击防御方案大全
  • 酒店管理系统|Java|SSM|VUE| 前后端分离
  • 电话男 AI 语音,用于变声器和文本
  • 从 Elastic 迁移到 Easysearch 指引
  • 探索Docker:解锁容器化的神奇世界
  • Quartz任务调度框架实现任务动态执行
  • springboot509基于Springboot和BS架构的宠物健康咨询系统(论文+源码)_kaic
  • 基于微信小程序的快递管理平台的设计与实现ssm+论文源码调试讲解
  • 【潜意识Java】Java匿名内部类深入笔记总结,助力开启高效编程新征程。
  • 快速构建AI应用:FastAPI与Redis集成实例解析
  • 密钥登录服务器
  • 【TypeScript篇】TypeScript命令行编译和自动化编译
  • 【Pandas】pandas Series iat
  • 前后端数据交互
  • 域名系统DNS:Domain Name System
  • Java高频面试之SE-06
  • 【PDF物流单据提取明细】批量PDF提取多个区域内容导出表格或用区域内容对文件改名,批量提取PDF物流单据单号及明细导出表格并改名的技术难点及小节
  • 【华为OD-E卷 - 异常的打卡记录100分(python、java、c++、js、c)】
  • python数据分析:使用pandas库读取和编辑Excel表
  • 期末速成C++【知识点汇总完】
  • vite+vue3项目启动报错
  • windows C#-声明、实例化和使用委托