今天写了一个能手动指定网络IP的批处理,参考的网址有:
http://blog.163.com/yangshengchang@126/blog/static/52919664200952210302939/
http://hi.baidu.com/devel83/blog/item/d38476d6d6adc6c850da4b27.html
做了一些修改,完善了一些功能:
①能手动指定网络连接;
②能在运行程序时手动指定IP等参数,同时,也有默认值;
③修改小BUG,原例子中将IP设置于网关设置分开了,导致设置网关后会将IP又赋值为空,现将两个设置和在一起。
最后,贴上完整代码:
@echo off
title 企鹅Sheldon批处理系列之3——设置网络IP
mode con cols=60 lines=40
echo 功能说明:设置网络连接的静态或动态IP
echo.&echo.
::请根据您的参数修改以下数据
set name=本地连接
::设置 IP地址
set ipaddress=10.64.128.121
::设置 子掩码
set mask=255.255.255.0
::设置 网关
set gateway=10.64.128.254
::设置 首选DNS服务器
set dns1=202.205.16.5
::设置 备用DNS服务器
set dns2=202.205.16.4
set /p name= 请输入网络连接名(默认:本地连接):
set /p type= 请选择设置方式,1: 静态,2: 动态:
if /i %type%==1 goto :STATIC_IP
if /i %type%==2 goto :DHCP_IP
:STATIC_IP
set /p ipaddress= 请输入静态IP(默认:10.64.128.121):
set /p mask= 请输入子网掩码(默认:255.255.255.0):
set /p gateway= 请输入网关(默认:10.64.128.254):
set /p dns1= 请输入首选DNS(默认:202.205.16.5):
set /p dns2= 请输入备用DNS(默认:202.205.16.4):
echo 正在进行静态IP设置,请稍等...
netsh interface ip set address name=%name% source=static addr=%ipaddress% mask=%mask% gateway=%gateway% >nul
echo. IP地址 = %ipaddress% .完成设置
echo. 子掩码 = %mask% .完成设置
echo. 网关 = %gateway% .完成设置
netsh interface ip set dns name=%name% source=static addr=%dns1% register=PRIMARY >nul
echo. 首选DNS = %dns1% .完成设置
netsh interface ip add dns name=%name% addr=%dns2% index=2 >nul
echo. 备用DNS = %dns2% .完成设置
goto :SETEND
:DHCP_IP
echo 正在进行动态IP设置,请稍等...
netsh interface ip set address name=%name% source=dhcp
netsh interface ip set dns name=%name% source=dhcp register=PRIMARY
netsh interface ip set wins name=%name% source=dhcp
goto :SETEND
:SETEND
echo. ===============IP设置完成================
echo. =========================================
echo. == 以下测试网络是否正常
echo. == 若出现如下形式:
echo. == "Reply from %gateway%: bytes=32 time<1ms TTL=64"
echo. == 则网络正常,否则网络不正常!
echo. =========================================
ping %gateway% -n 1
pause