批處理實現的ip地址切換的複雜指令碼

BTxigua發表於2008-03-18

@echo off
cls
echo ****************
echo IP地址切換
echo 版本:070510
echo ****************
echo.
echo 070510版--增加了建立多套預設配置的選項,選“3”建立多套配置後後,可以選“1”快速恢復成需要的配置。
echo.
echo 061105版--又更新了,增加了DHCP,和察看當前狀態的功能。
echo.
set IP=220.114.111.253
set MASK=255.255.255.0
set GATEWAY=220.114.111.129
set DNS1=211.162.31.8
set DNS2=211.162.31.9
set INTERFACE=本地連線
set POLICY=1

:MENU
echo.
echo 快速設定請按-1
echo.
echo 手工設定請按-2
echo.
echo 建立預設請按-3
echo.
echo 自動獲取請按-4
echo.
echo 察看狀態請按-5
echo.
echo.
set /p KEY= 請輸入您的選擇:

if %KEY% == 1 goto QUICK
if %KEY% == 2 goto MANUAL
if %KEY% == 3 goto DEFAULT
if %KEY% == 4 goto DHCP
if %KEY% == 5 goto LOOK
goto END

:LOOK
echo.
ipconfig
echo.
echo 本程式預設修改的是“本地連線”的設定
echo.
echo 需要修改請按相應的數字鍵,
echo.
echo 例如:輸入2表示改為“本地連線 2”
echo.
echo 英文作業系統請按e2,任意鍵繼續!
echo.
set /p INTEMP= [請輸入本地連線的編號]
if %INTEMP% == 1 set INTERFACE=本地連線
if %INTEMP% == 2 set INTERFACE=本地連線 2
if %INTEMP% == 3 set INTERFACE=本地連線 3
if %INTEMP% == 4 set INTERFACE=本地連線 4
if %INTEMP% == 5 set INTERFACE=本地連線 5
if %INTEMP% == e1 set INTERFACE=Local Area Connection
if %INTEMP% == e2 set INTERFACE=Local Area Connection 2
if %INTEMP% == e3 set INTERFACE=Local Area Connection 3
if %INTEMP% == e4 set INTERFACE=Local Area Connection 4
if %INTEMP% == e5 set INTERFACE=Local Area Connection 5
cls
goto MENU

:QUICK
set /p POLICY= [請輸入預設設定的名稱,中文、英文或數字:]
if exist ip"%POLICY%".txt goto QDO
echo.
echo 沒有發現預設設定檔案!
goto END

:QDO
netsh -f .\ip"%POLICY%".txt
echo.
echo %POLICY% 預設設定已經完成設定!
goto END

:DEFAULT
set /p POLICY= [請輸入預設設定的名稱,中文、英文或數字]
netsh -c interface ip dump > .\ip"%POLICY%".txt
echo.
echo %POLICY% 預設設定已經生成!
goto END

:DHCP
echo.
echo 快速設定IP地址和DNS為“自動獲得”
echo.
netsh interface ip set address "%INTERFACE%" dhcp
netsh interface ip set dns "%INTERFACE%" dhcp
goto END

:MANUAL
ECHO.
ECHO 您選擇了手工修改設定。
ECHO.

echo 預設IP地址是%IP%,回車輸入預設地址
set /p IP= [請輸入 IP 地址:]
echo.
echo 預設MASK是%MASK%,回車輸入預設值
set /p MASK= [請輸入 MASK 地址:]
echo.
echo 預設閘道器地址是%GATEWAY%,回車輸入預設地址
set /p GATEWAY= [請輸入GATEWAY地址:]
ECHO.
echo 預設主DNS地址是%DNS1%,回車輸入預設地址
set /p DNS1= [請輸入主 DNS地址:]
echo.
echo 預設第二DNS地址是%DNS2%,回車輸入預設地址
set /p DNS2= [請輸入第二DNS地址:]
echo.
goto LIST

:LIST
echo 即將對“%INTERFACE%”進行設定
ECHO 即將生效的 IP 地址是%IP%
ECHO 即將生效的 MASK 是%MASK%
ECHO 即將生效的GATEWAY地址是%GATEWAY%
ECHO 即將生效的 主DNS 地址是%DNS1%
ECHO 即將生效的第二DNS地址是%DNS2%
echo.
set /p REEN= [馬上更改請按 1,重新設定請按 2,退出請按任意鍵]
if %REEN% == 1 goto DO
if %REEN% == 2 goto MANUAL
GOTO END

:DO
echo.
echo 正在更改IP......
echo.

echo IP地址及子網掩碼設定完成
netsh interface ip set address name="%INTERFACE%" source=static addr=%IP% mask=%MASK%
echo 閘道器地址設定完成
netsh interface ip set address name="%INTERFACE%" gateway=%GATEWAY% gwmetric=0
echo 主DNS地址設定完成
netsh interface ip set dns name="%INTERFACE%" source=static addr=%DNS1% register=PRIMARY
echo 第二DNS地址設定完成
netsh interface ip add dns name="%INTERFACE%" addr=%DNS2% index=2
goto end

:end
echo.
pause

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10867315/viewspace-211572/,如需轉載,請註明出處,否則將追究法律責任。

相關文章