因为笔记本要经常在宿舍与实验室之间来回使用,两边都是使用静态IP地址,除了DNS都要重新设置,很不方便,就做了这个批处理,可以用于IP地址切换。
只在XP和2003操作系统下测试过,2000和Vista系统的netsh命令参数不知道是否一样。
以下是批处理文件的内容:
@echo off
title IP地址快速切换
color 1f
::变量默认设置
set INTERFACE=本地连接
:menu
cls
echo ┏━━━━━━━┓
echo ┃IP地址快速切换┃
echo ┃作者:nksmiles┃
echo ┗━━━━━━━┛
echo.
echo 1. 切换IP地址为10.10.112.150(宿舍用)
echo.
echo 2. 切换IP地址为202.113.227.142(实验室)
echo.
echo 3. 退出
echo.
set /p key= 请输入您的选择[1/2/0]:
if "%key%" == "" goto error
if "%key%" == "1" goto dormIP
if "%key%" == "2" goto expIP
if "%key%" == "0" exit
goto error
:error
echo.
echo 对不起,您的输入有误!
echo 请按任意键返回...
pause >nul
goto menu
:dormIP
echo.
echo 正在设置IP地址,请稍等...
netsh interface ip set address name="%INTERFACE%" source=static addr=10.10.112.144 mask=255.255.255.0
echo 正在设置默认网关,请稍等...
netsh interface ip set address name="%INTERFACE%" source=static gateway=10.10.112.1 gwmetric=0
echo 设置完毕,请按任意键返回...
pause > nul
goto menu
:expIP
echo.
echo 正在设置IP地址,请稍等...
netsh interface ip set address name="%INTERFACE%" source=static addr=202.113.227.142 mask=255.255.255.192
echo 正在设置默认网关,请稍等...
netsh interface ip set address name="%INTERFACE%" source=static gateway=202.113.227.129 gwmetric=0
echo 设置完毕,请按任意键返回...
pause > nul
goto menu
当然,如果想设置动态IP,只要相应的更改为下面的命令就可以了:
netsh interface ip set address name="%INTERFACE%" source=dhcp
netsh interface ip set address name="%INTERFACE%" gateway=none
这里的INTERFACE变量是“本地连接”,在上面的批处理文件开始的地方已经定义,这样如果有“本地连接2”或者其它名称的连接也比较容易修改。
除了用单个批处理文件运行netsh命令外,还有用netsh dump保存网络配置的方法:
netsh interface dump > NetConfig.cfg
然后用netsh exec恢复网络设置:
netsh exec NetConfig.cfg
在将网络设置保存到NetConfig.cfg这个文件中以后,也可以将上面这行命令保存为一个批处理文件,用于恢复此状态的网络设置。