安徽理工大学校园网自动重连工具 - 基于 Qt6/C++ 开发的智能网络管理软件
开发者:信息安全23-1 王智杰
专为安徽理工大学校园网环境打造的智能重连解决方案,支持学生和教师用户
- 全新界面设计 - 完全重新设计的 Windows 11 风格界面
- 流畅动画效果 - 窗口移动、切换无卡顿,极致流畅体验
- 现代化布局 - 卡片式设计,清晰的信息层次
- 统一视觉风格 - 与 Windows 11 系统应用完美融合
- 完全异步架构 - 移除所有阻塞操作,UI 响应速度提升 300%
- 智能窗口管理 - 窗口移动时自动暂停后台任务,零卡顿体验
- 异步 WiFi 检测 - 非阻塞 SSID 检测,不影响用户操作
- 内存优化 - 更高效的资源管理,降低内存占用
- Linux 支持 - 全新支持 Linux 系统(Ubuntu、Debian 等)
- 统一代码库 - 一套代码,多平台编译
- 平台适配 - 自动检测操作系统,使用对应网络命令
- 编译脚本 - 提供 Linux 一键编译脚本
- 双账号系统 - 同时保存学生和教师配置,智能自动切换
- WiFi 智能检测 - 根据网络 SSID 自动识别用户类型并选择对应配置
- 零感知体验 - AUST_Student → 学生登录,AUST_Faculty → 教师登录
- 中文支持 - 完美支持中文 WiFi 名称显示
- 智能重试机制 - 3次重试 + 30秒冷却期,防止频繁请求
- 冲突避免算法 - 网络检测与登录请求智能协调,杜绝冲突
- 生命周期保护 - QPointer 防护异步回调,彻底消除崩溃
- 响应速度优化 - 断网检测时间从 15 秒缩短到 8 秒,提升 47%
- 配置状态管理 - 配置期间自动暂停网络操作,避免干扰
- 友好错误提示 - GUI 对话框替代控制台输出,专业化呈现
- 生产级配置 - 完全禁用调试输出,无控制台窗口
- 标签页优化 - 统一的标签页高度,切换无闪烁
| 项目 | Windows | Linux |
|---|---|---|
| 操作系统 | Windows 10 Build 1903+ / Windows 11 | Ubuntu 20.04+ / Debian 11+ / 其他主流发行版 |
| 架构 | x64 (64位) | x64 (64位) |
| 内存 | 最低 2GB RAM | 最低 2GB RAM |
| 存储空间 | 100MB 可用空间 | 100MB 可用空间 |
| 网络环境 | 安徽理工大学校园网 | 安徽理工大学校园网 |
# 必需组件
- Qt 6.7+ with MinGW/GCC编译器
- C++17兼容编译器
- Git版本控制
# Windows 可选组件
- libcurl (用于网络请求,如无则自动使用Qt Network)
- Qt Creator IDE (推荐)
# Linux 必需组件
- build-essential (gcc, g++, make)
- libqt6widgets6-dev
- libqt6network6-devgit clone https://github.com/Mengxun326/AUST-WIFI.git
cd AUST-WIFI# 方式一:使用编译脚本 (推荐)
build.bat
# 方式二:手动编译
qmake AUST_WIFI.pro
mingw32-make
# 方式三:使用Qt Creator
# 1. 打开 AUST_WIFI.pro 文件
# 2. 配置编译套件
# 3. 点击构建按钮# 方式一:使用编译脚本 (推荐)
chmod +x build.sh
./build.sh
# 方式二:手动编译
qmake AUST_WIFI.pro
make
# 方式三:使用Qt Creator
# 1. 打开 AUST_WIFI.pro 文件
# 2. 配置编译套件
# 3. 点击构建按钮详细 Linux 编译说明请参考:Linux 编译指南
- 启动程序 - 双击编译生成的可执行文件
- 配置界面 - 首次运行自动弹出配置对话框
- 填写信息:
用户类型:选择"学生"或"教师" 学号/工号: - 学生:输入完整学号 (例如:2023305123) - 教师:输入工号 (例如:2023001) 密码:输入校园网登录密码 运营商:仅学生需要选择,教师自动使用学校服务器 开机自启:建议勾选此选项 - 保存配置 - 点击"保存"按钮完成配置
| 用户类型 | 选择选项 | 服务器标识 | 适用人群 | 运营商选择 |
|---|---|---|---|---|
| 学生用户 | 在校学生 | 需要选择 | ||
| ├─ 中国电信 | 电信 (aust) | aust |
电信套餐学生 | 必选 |
| ├─ 中国联通 | 联通 (unicom) | unicom |
联通套餐学生 | 必选 |
| └─ 中国移动 | 移动 (cmcc) | cmcc |
移动套餐学生 | 必选 |
| 教师用户 | 教师 | jzg |
教职工 | 无需选择 |
- 系统托盘 - 程序运行后自动最小化到系统托盘
- 状态查看 - 托盘图标颜色表示连接状态:
- 🟢 绿色:网络连接正常
- 🔴 红色:网络连接断开,正在重连
- 🟡 黄色:正在检测网络状态
- 右键菜单:
- 📝 显示配置 - 修改网络配置
▶️ 开始自动重连 - 启动自动监控- ⏸️ 停止自动重连 - 暂停监控功能
- ❌ 退出程序 - 完全关闭应用
┌─────────────────────────────────────┐
│ 用户界面层 │
│ ┌─────────────┬─────────────────┐ │
│ │ MainWindow │ ConfigDialog │ │
│ │ 主窗口管理 │ 配置对话框 │ │
│ └─────────────┴─────────────────┘ │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ 业务逻辑层 │
│ ┌─────────────┬─────────────────┐ │
│ │ WiFiManager │ SystemTray │ │
│ │ 网络管理核心 │ 系统托盘管理 │ │
│ └─────────────┴─────────────────┘ │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ 系统服务层 │
│ ┌─────────────┬─────────────────┐ │
│ │QNetworkAccess│ QSettings │ │
│ │Manager │ 配置存储 │ │
│ └─────────────┴─────────────────┘ │
└─────────────────────────────────────┘
- Qt Widgets - 原生桌面应用界面框架
- QSystemTrayIcon - 系统托盘功能实现
- Qt Designer - 可视化界面设计
- Windows 11 Fluent Design - 现代化 UI 设计语言
- QNetworkAccessManager - HTTP 网络请求处理
- QTimer - 定时任务调度 (1秒间隔检测)
- QSettings - 配置信息持久化存储
- QProcess - 异步进程管理(WiFi 检测)
- libcurl - 可选的网络请求库
- Windows API - 开机自启动设置
- DPAPI - 密码安全加密存储
- 注册表 - 配置信息存储
- Linux 网络工具 - iwgetid、nmcli 支持
AUST_WIFI/
├── main.cpp # 🚀 程序入口点
├── mainwindow.h/cpp # 🖼️ 主窗口和配置界面
├── mainwindow.ui # 🎨 Qt Designer界面文件
├── wifimanager.h/cpp # 🌐 WiFi管理核心逻辑
├── config_dialog.h/cpp # ⚙️ 配置对话框逻辑
├── config_dialog.ui # 🎨 配置对话框界面
├── resources.qrc # 📦 资源文件集合
├── AUST_WIFI.pro # ⚙️ Qt项目配置文件
├── build.bat # 🔨 Windows一键编译脚本
├── build.sh # 🔨 Linux一键编译脚本
├── setup.iss # 📦 Inno Setup安装脚本
├── icons/ # 🎭 图标资源文件夹
│ └── app.ico # 应用程序图标
├── docs/ # 📚 文档目录
│ ├── LINUX_BUILD.md # Linux编译指南
│ └── releases/ # 版本发布说明
│ ├── RELEASE_V1.0.md
│ ├── RELEASE_V2.0.md
│ └── RELEASE_V3.0.md
├── LICENSE # 📄 许可证文件
├── README.md # 📖 项目说明文档
├── 用户说明书.md # 📘 详细用户手册
├── INSTALL_INFO.txt # 📋 安装向导说明
└── FINISH_INFO.txt # ✅ 安装完成说明
graph TD
A[程序启动] --> B[检查配置]
B --> C{配置存在?}
C -->|否| D[显示配置界面]
C -->|是| E[启动网络监控]
D --> F[用户配置保存]
F --> E
E --> G[定时检测网络 1s间隔]
G --> H{网络连接正常?}
H -->|是| I[更新状态为已连接]
H -->|否| J[发送登录请求]
J --> K{登录成功?}
K -->|是| L[更新状态为已连接]
K -->|否| M[等待下次检测]
I --> G
L --> G
M --> G
- 检测频率:每 1000 毫秒执行一次网络状态检测
- 检测方法:向
http://www.baidu.com发送 HEAD 请求 - 判断标准:HTTP 状态码 200 表示网络连接正常
- 超时设置:请求超时时间设为 8 秒
- 重连触发:检测到网络异常时立即发送校园网登录请求
- Windows:使用
netsh wlan show interfaces(UTF-8 编码) - Linux:使用
iwgetid -r或nmcli作为备用方案 - macOS:使用
airport -I命令 - 完全异步:所有检测操作异步执行,不阻塞 UI 线程
| 用户类型 | 请求方法 | 认证URL | 参数格式 | 响应验证 |
|---|---|---|---|---|
| 学生 | POST | /a79.htm |
DDDDD={学号}@{运营商} |
响应内容 |
| 教师 | GET | /drcom/login |
DDDDD={工号}@jzg |
HTTP 重定向 |
- 密码加密:使用 Windows DPAPI (Data Protection API) 加密存储
- 本地存储:所有配置信息仅保存在本地注册表中
- HTTPS 支持:支持加密的网络传输协议
- 无数据收集:程序不收集或上传任何用户隐私信息
💡 解决方案:
# Windows 方案一:重新编译并部署
windeployqt.exe AUST_WIFI.exe
# Windows 方案二:安装Visual C++ Redistributable
# 下载并安装 Microsoft Visual C++ 2019+ Redistributable
# Linux 方案:安装依赖库
sudo apt-get install libqt6widgets6 libqt6network6💡 解决方案:
# 1. 清除配置信息
# Windows: 删除注册表项 HKEY_CURRENT_USER\Software\AUST_WIFI
# Linux: 删除 ~/.config/AUST_WIFI 目录
# 2. 以管理员权限运行
# Windows: 右键程序图标 -> "以管理员身份运行"
# Linux: sudo ./AUST_WIFI
# 3. 检查系统托盘
# 确保系统托盘功能正常工作💡 解决方案:
# 1. 检查网络连接
# 确保计算机已连接到校园网
# 2. 验证账号信息
# 确认学号、密码和运营商选择正确
# 3. 检查防火墙设置
# 将程序添加到防火墙例外列表
# 4. 手动测试网络
# 在浏览器中尝试访问校园网认证页面💡 解决方案:
# 1. 安装网络工具
sudo apt-get install wireless-tools # iwgetid
# 或
sudo apt-get install network-manager # nmcli
# 2. 检查权限
# 确保当前用户有权限访问网络接口
# 3. 手动测试命令
iwgetid -r # 测试 WiFi 检测命令💡 解决方案:
- V3.0 已完全解决此问题,所有操作均为异步执行
- 如果仍有卡顿,请确保使用最新版本
- 检查系统资源占用情况
我们欢迎社区贡献!请遵循以下流程:
- Fork 项目 - 点击页面右上角的 Fork 按钮
- 创建分支 -
git checkout -b feature/your-feature-name - 提交代码 -
git commit -m "描述你的更改" - 推送分支 -
git push origin feature/your-feature-name - 创建 PR - 在 GitHub 上创建 Pull Request
# 单元测试 (如果添加)
qmake CONFIG+=test
make check
# 内存泄漏检测
# Windows: Application Verifier
# Linux: valgrind --leak-check=full ./AUST_WIFI
# 性能分析
# Windows: Visual Studio Profiler
# Linux: perf record ./AUST_WIFI && perf report# 1. 编译发布版本
qmake CONFIG+=release
make
# 2. 部署依赖
# Windows:
windeployqt.exe --release AUST_WIFI.exe
# Linux:
# 确保所有 Qt 依赖库已安装
# 3. 创建安装包
# Windows: iscc setup.iss
# Linux: 创建 .deb 或 .rpm 包
# 4. 发布到 GitHub Releases
git tag v3.0.0
git push origin v3.0.0本项目采用自定义许可证,详情请参见 LICENSE 文件。
- ✅ 允许:个人学习、研究使用
- ✅ 允许:校内分享传播
- ❌ 禁止:商业用途
- ❌ 禁止:未经授权的修改和重发布
感谢以下项目和组织的支持:
- Qt Framework - 提供优秀的跨平台开发框架
- 安徽理工大学 - 提供良好的学习研究环境
- libcurl - 可选的网络请求库支持
- 开源社区 - 提供丰富的技术资源和经验分享
- 开发者QQ: 3209697935
- 个人博客: https://www.meng-xun.top
- 技术交流: 欢迎通过以上方式联系
查看 Releases 页面 获取版本更新信息。
详细版本更新说明:
🎓 让校园网连接更智能、更便捷!
如果这个项目对您有帮助,请考虑给它一个 ⭐ Star!
Copyright © 2025 信息安全23-1 王智杰. All rights reserved.