# Windows 一键切换网络配置脚本
背景
在日常使用中,你可能需要在不同网络环境之间切换 IP 地址配置。例如:
- 静态 IP:用于特定局域网(如 N1 旁路由网关
192.168.1.254)。 - DHCP:用于普通家庭/办公网络自动获取 IP。
手动修改不仅繁琐,还容易出错。本脚本可以智能检测当前配置,并一键切换到另一种配置。
脚本功能
- 自动检测当前“以太网”适配器的 IP 获取方式(静态或 DHCP)。
- 一键切换:
- 若当前为 DHCP,则切换到预设的静态 IP。
- 若当前为静态 IP,则切换到 DHCP。
- 静态 IP 配置参数:
- IP 地址:
192.168.1.95 - 子网掩码:
255.255.255.0 - 网关:
192.168.1.254 - 首选 DNS:
223.5.5.5 - 备用 DNS:
114.114.114.114
- IP 地址:
- 切换后显示当前 IP 和默认网关,方便验证。
使用方法
- 将以下代码保存为
switch-ip.bat(编码选择 ANSI 或 UTF-8 with BOM)。 - 右键点击该文件,选择 “以管理员身份运行”。
- 等待脚本执行完毕,查看输出结果确认切换成功。
⚠️ 必须以管理员权限运行,否则无法修改网络配置。
脚本代码
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
set ADAPTER=以太网
:: 使用 PowerShell 检测当前 IP 来源
for /f "tokens=*" %%i in ('powershell -Command "Get-NetIPAddress -InterfaceAlias '%ADAPTER%' -AddressFamily IPv4 | Select-Object -ExpandProperty PrefixOrigin" 2^>nul') do set DHCP_Status=%%i
echo 当前 IP 来源: %DHCP_Status%
if /i "%DHCP_Status%"=="Dhcp" (
echo 当前为 DHCP,正在切换到静态 IP ...
netsh interface ip delete address "%ADAPTER%" all >nul 2>&1
netsh interface ip set address "%ADAPTER%" static 192.168.1.95 255.255.255.0 gateway=192.168.1.254 gwmetric=1
netsh interface ip set dns "%ADAPTER%" static 223.5.5.5
netsh interface ip add dns "%ADAPTER%" 114.114.114.114 index=2
if not errorlevel 1 (
echo ✅ 已切换为静态 IP
) else (
echo ❌ 切换失败,请检查适配器名称或 IP 冲突
)
) else (
echo 当前为静态 IP,正在切换到 DHCP ...
netsh interface ip set address "%ADAPTER%" dhcp
netsh interface ip set dns "%ADAPTER%" dhcp
if not errorlevel 1 (
echo ✅ 已切换为 DHCP
ipconfig /renew "%ADAPTER%" >nul 2>&1
) else (
echo ❌ 切换失败
)
)
echo.
echo 当前 IP 信息:
ipconfig | findstr /C:"IPv4" /C:"默认网关"
echo.
pause