# resetNetwork **Repository Path**: aguang45/resetNetwork ## Basic Information - **Project Name**: resetNetwork - **Description**: 因电脑待机期间 IP 租约到期,未能正确获取新的ip地址导致未连接互联网,远程连接不上 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-09 - **Last Updated**: 2026-05-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README https://github.com/54aguang-arch/resetNetwork.git # 网络自动检测与重置工具 ## 概述 本工具套件用于 **Windows 环境下的网络连通性自动检测与恢复**。通过定时 ping 网关地址来检测网络状态,一旦发现网络不通,自动执行网卡适配器禁用/启用操作,从而实现快速自动修复常见网络中断问题。 --- ## 文件清单 | 文件 | 类型 | 说明 | |------|------|------| | `reset_network.exe` | 可执行程序 | 封装好的主程序,可直接运行或由计划任务调用 | | `reset_ip.py` | Python 源码 | 主程序的源代码,需 Python 环境运行 | | `config.json` | 配置文件 | 网卡名称、网关地址、ping 次数、日志保留天数等 | | `install_task.bat` | 安装脚本 | 一键配置 Windows 计划任务,实现定时自动执行 | | `uninstall_task.bat` | 卸载脚本 | 一键移除计划任务 | | `log/` | 日志目录 | 按日期存储运行日志(自动生成),重置事件单独记录在 `log/reset/` 子目录 | --- ## 工作原理 1. **网络检测**:ping 指定的网关地址(默认 3 次) 2. **判断**: - 能 ping 通 → 网络正常,程序退出,不执行任何操作 - ping 不通 → 判定网络异常,进入修复流程 3. **修复**:通过 `netsh` 命令先禁用再启用指定网卡适配器 4. **验证**:修复后再次 ping 网关,确认网络已恢复 5. **日志**: - 日常检测记录输出到 `log/YYYY-MM-DD.log` - 网卡重置事件单独记录到 `log/reset/YYYY-MM-DD.log` --- ## 配置文件说明(config.json) ```json { "adapter_name": "以太网", "test_host": "192.168.20.1", "ping_count": 2, "log_retain_days": 30 } ``` | 参数 | 说明 | 示例值 | |------|------|--------| | `adapter_name` | 要重置的网卡名称(必须与控制面板中一致) | `以太网`、`WLAN`、`Ethernet0` | | `test_host` | ping 检测的目标地址(通常是网关 IP) | `192.168.1.1` | | `ping_count` | 每次检测 ping 的次数 | `3` | | `log_retain_days` | 日志文件保留天数,过期自动清理 | `30` | ### 查看本机网卡名称 在命令行中执行: ``` netsh interface show interface ``` --- ## 安装与使用 ### 方式一:使用计划任务自动运行(推荐) 1. **以管理员身份**运行 `install_task.bat` 2. 脚本会自动执行以下步骤: - 自动检测当前网关 IP 地址 - 更新 `config.json` 中的 `test_host` 为检测到的网关 - 选择执行间隔(1 分钟 / 5 分钟 / 10 分钟 / 30 分钟 / 60 分钟 / 自定义) - 创建名为 `NetworkReset` 的计划任务(以 SYSTEM 账户、最高权限运行) 3. 脚本会询问是否立即运行一次进行测试 安装完成后,你可以在 **任务计划程序(taskschd.msc)** 中看到该任务,并可手动管理(启用、禁用、修改、删除等)。 ### 方式二:手动单次运行 双击 `reset_network.exe` 或命令行执行: ``` reset_network.exe ``` 程序会自动检测网络,有问题则自动修复,等待完成即可。 ### 方式三:Python 源码运行 确保已安装 Python 3,然后执行: ``` python reset_ip.py ``` --- ## 卸载 以 **管理员身份** 运行 `uninstall_task.bat`,脚本会删除 `NetworkReset` 计划任务。如需彻底清理,可手动删除工具所在目录即可。 --- ## 日志查看 运行日志存放在 `log/` 目录下,分为两类: ### 日常检测日志 文件路径 `log/YYYY-MM-DD.log`,记录每次运行的检测结果。网络正常时仅有一条启动和检测记录: ``` [15:30:01] [INFO] ======================================== [15:30:01] [INFO] 网络状态检测 & 重置工具 启动 [15:30:01] [INFO] 检测网络连通性,ping 192.168.20.1 x3... [15:30:02] [INFO] 网络正常,平均延迟 3 ms ``` ### 重置事件日志 文件路径 `log/reset/YYYY-MM-DD.log`,仅在发生网卡重置时写入,记录完整的重置过程: ``` [15:32:01] [INFO] ======================================== [15:32:01] [INFO] 检测到网络异常(192.168.20.1 不通),触发自动重置 [15:32:01] [INFO] 开始重置适配器 [以太网] [15:32:01] [INFO] 禁用适配器... [15:32:04] [INFO] 启用适配器... [15:32:09] [INFO] 检测网络连通性,ping 192.168.20.1 x3... [15:32:10] [INFO] 网络正常,平均延迟 3 ms [15:32:10] [INFO] 网络恢复正常,当前IP:192.168.1.100 ``` --- ## 注意事项 1. **必须管理员权限**:网卡禁用/启用操作需要管理员权限,安装脚本和程序执行均需以管理员身份运行 2. **网卡名称**:`config.json` 中的 `adapter_name` 必须与实际网卡名称完全一致(含空格和标点),否则重置操作无法执行 3. **网关 IP**:安装脚本会自动检测网关地址,如果自动检测不准可手动输入 4. **执行间隔**:建议设置为 5 分钟,过于频繁会造成不必要的资源消耗 --- ## 适用场景 - 办公环境中网络偶尔中断(如 DHCP 租约过期、交换机端口假死等),需要自动恢复 - 无人值守的服务器或工控机,需要在断网时自动尝试修复 - 需要记录网络中断历史的场景(通过日志文件查看哪些时段发生过断网)