# wifiAutoConnect **Repository Path**: pyfGo/wifi-auto-connect ## Basic Information - **Project Name**: wifiAutoConnect - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-04 - **Last Updated**: 2026-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WiFi 自动重连工具 ## 简介 这个工具用于监控网络连接状态,当检测到网络断开时自动连接指定的WiFi。适用于需要保持长时间网络连接的场景。 ## 文件结构 ``` D:\Utilities\NetworkTools\ ├── 启动WiFi重连.bat # 双击启动 ├── wifi_config.txt # WiFi配置信息 ├── wifi_reconnector.py # 主程序 └── README.md # 说明文档 ``` ## 工作原理 ### 1. 网络检测原理 程序通过连接到公共DNS服务器(8.8.8.8的53端口)来检测网络状态: ``` 用户设备 → 8.8.8.8:53 (Google DNS) ↓ 成功: 网络正常 ↓ 超时/失败: 网络断开 ``` 选择8.8.8.8的原因: - 全球可用,访问速度快 - 53端口(DNS端口)通常不被防火墙拦截 - 稳定性高,24/7可用 ### 2. WiFi连接原理 使用Windows的 `netsh` 命令管理WiFi连接: **步骤1:尝试连接已保存的配置** ```cmd netsh wlan connect name="成合村22号" ``` 如果系统中已有该WiFi的保存配置,直接连接。 **步骤2:创建WLAN配置文件并连接(如步骤1失败)** ```xml 成合村22号 成合村22号 WPA2PSK AES 密码 ``` 使用WPA2-PSK加密方式(最常用的家庭WiFi加密标准) ## 工作流程 ``` ┌─────────────────────────────────────────────────────────────┐ │ 程序启动 │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌────────────────────────┐ │ 读取 wifi_config.txt │ │ - WiFi名称 │ │ - WiFi密码 │ │ - 检测间隔 │ └────────────────────────┘ │ ▼ ┌────────────────────────┐ │ 初始网络检测 │ │ (测试8.8.8.8:53) │ └────────────────────────┘ │ ┌──────────┴──────────┐ │ │ ▼ ▼ 【在线】 【离线】 │ │ │ ▼ │ ┌────────────┐ │ │ 尝试连接WiFi│ │ └────────────┘ │ │ │ ┌──────────┴──────────┐ │ │ │ │ ▼ ▼ │ 【成功】 【失败】 │ │ │ ▼ ▼ ▼ ┌───────────────────────────────────────────┐ │ 主循环监控 │ └───────────────────────────────────────────┘ │ ▼ ┌────────────────────────┐ │ 显示实时状态界面 │ │ - 在线/离线状态 │ │ - 运行时长 │ │ - 检测间隔 │ │ - 下次检测倒计时 │ │ - 重连次数 │ └────────────────────────┘ │ ▼ ┌────────────────────────┐ │ 等待检测间隔 │ │ (默认20分钟) │ │ 每分钟刷新显示 │ └────────────────────────┘ │ ▼ ┌────────────────────────┐ │ 检测网络状态 │ └────────────────────────┘ │ ┌──────────┴──────────┐ │ │ ▼ ▼ 【在线】 【离线】 │ │ │ ▼ │ ┌────────────┐ │ │ 尝试连接WiFi│ │ └────────────┘ │ │ │ ┌──────────┴──────────┐ │ │ │ │ ▼ ▼ │ 【成功】 【失败】 │ │ │ │ ▼ ▼ └────────────────┴────────────────────┘ │ ▼ (返回主循环) ``` ## 配置文件说明 ### wifi_config.txt 格式 ``` 成合村22号 18300139318 20 ``` - **第1行**:WiFi名称(SSID) - **第2行**:WiFi密码 - **第3行**:检测间隔(分钟),可选,默认20 ### 修改配置 直接用记事本打开 `wifi_config.txt` 编辑即可。 ## 技术细节 ### 1. 使用的Python标准库 | 库 | 用途 | |---|---| | `os` | 操作系统接口(清屏、路径操作) | | `subprocess` | 执行系统命令(netsh) | | `time` | 时间处理、睡眠等待 | | `socket` | 网络连接检测 | | `datetime` | 时间格式化和计算 | **无需安装任何第三方库!** ### 2. 状态刷新机制 - 每1秒检查一次是否到达检测间隔 - 每60秒刷新一次显示界面(实时更新倒计时) - 这样实现了流畅的倒计时显示和精确的检测控制 ### 3. 临时文件清理 连接WiFi时会创建临时XML配置文件: ``` wifi_profile_1234567890.xml ``` 连接完成后自动删除,不留痕迹。 ## 使用方法 ### 方式一:双击批处理文件 双击 `启动WiFi重连.bat` 即可启动。 ### 方式二:直接运行Python脚本 ``` python wifi_reconnector.py ``` ### 退出程序 在运行窗口按 `Ctrl + C` 退出。 ## 运行界面 ``` ================================================== WiFi 自动重连工具 ================================================== 运行状态: ● 在线 目标WiFi: 成合村22号 运行时长: 01:23:45 检测间隔: 20 分钟 上次检测: 14:30:00 下次检测: 00:15:32 后 重连次数: 2 最后重连: 2026-03-04 13:45:12 ================================================== 当前时间: 2026-03-04 14:30:00 按 Ctrl+C 退出 ================================================== ``` ## 使用场景 - 下载大文件时需要保持网络连接 - 服务器需要24/7在线 - 远程办公确保网络稳定 - 家庭备用WiFi自动切换 ## 注意事项 1. **管理员权限**:某些系统可能需要管理员权限才能使用netsh命令 2. **WiFi加密方式**:目前支持WPA2-PSK/AES加密(最常用) 3. **网络检测**:如果8.8.8.8被限制,可能无法正确检测网络 4. **电池续航**:运行在笔记本上会增加电池消耗 ## 常见问题 **Q: 为什么连接失败?** A: 检查wifi_config.txt中的密码是否正确,确认WiFi名称无误。 **Q: 如何修改检测间隔?** A: 编辑wifi_config.txt的第三行,单位是分钟。 **Q: 能否同时管理多个WiFi?** A: 当前版本只支持一个WiFi,这是通过配置文件的wifi_name指定的。 **Q: 程序关闭后会自动启动吗?** A: 不会,需要手动启动。如需开机自启,可将批处理文件放入启动文件夹。 --- **开发日期**:2026-03-04 **版本**:1.0 **依赖**:Python 3.x 标准库 **系统**:Windows 7/10/11