我們可能需要在不同的網絡中工作,一遍又一遍地重復修改IP地址是一件比較麻煩的事。另外,系統崩潰了,重新配置網卡等相關參數也比較煩人(尤其是無線網卡)。事實上,巧妙地利用Windows 2000/XP/2003系統內置的netsh命令,可以實現快速切換IP地址,一起來看看吧.
下面是兩個關於netsh的用法,將它們復制到文本文檔中,將後綴名 .txt 改為 .cmd直接雙擊就可以執行:
第一個是用netsh命令來修改電腦的IP地址,子網掩碼,默認網關和DNS.
@echo off
netsh interface ip set address "本地連接" static 192.168.0.1 255.255.255.0 192.168.0.254 1
netsh interface ip set dns "本地連接" static 202.194.40.1
netsh interface ip add dns "本地連接" 202.194.40.2 2
注意:上面用藍色字體表出的部分是需要你修改的部分。其中第二,三,四行中 "本地連接" 一般不需要修改,這要看你的電腦中右擊 “網上鄰居”,選擇“屬性”出現“網絡連接”窗口中的連接名而定,一般的只有一個“本地連接”。
第二行中的192.168.0.1 255.255.255.0 192.168.0.254 三個地址依次為IP地址,子網掩碼和默認網關,把它們換成你要修改的地址。
第三行中的 202.194.40.1 為DNS的地址,把它換成你要修改的DNS地址即可。
第四行中的202.194.40.2 為輔助DNS地址,也就是第二個,把它換成你要修改的第二個DNS地址即可,如果沒有的話,可以把第四行直接刪除即可。
第二個是用netsh命令來修改電腦的IP地址,子網掩碼,默認網關和DNS為動態獲取.
@echo off
netsh interface ip set address "本地連接" dhcp
netsh interface ip set dns "本地連接" dhcp
注意:這個比較簡單,只需根據自己電腦的情況,修改一下藍色字體標注的"本地連接" 即可,一般不需要修改。
下面這篇文章是關於 netsh 命令的詳細用法,看完後,你會明白它的其它一些用法。
在 Windows 2000 中可以使用 netsh 命令為以下過程編寫腳本:將計算機的靜態 Internet 協議 (IP) 地址更改為動態主機配置協議 (DHCP) 地址或相反。netsh 命令無需重新啟動計算機即可完成此任務。對於從一個環境移到另一個環境的便攜式計算機,當它在一個位置中必須使用靜態分配的 IP 地址,而在另一個位置必須使用 DHCP 分配的 IP 地址時,此功能尤其有用。
本文所說的方法適應於Windows 2000,Windows XP和Windows Server 2003。
要將指定適配器的靜態地址切換為 DHCP 地址,請鍵入以下命令:
netsh interface ip set address "本地連接" dhcp注意:鍵入此命令會將名為"本地連接"的接口更改為 DHCP。
要顯示計算機中的所有適配器及其當前 IP 地址,以確定正確的適配器名稱,請鍵入以下命令: Netsh interface ip show config要更改為靜態地址,請鍵入以下命令: netsh interface ip set address "本地連接" static IP 掩碼 網關 躍點數如:netsh interface ip set address "本地連接" static 192.168.0.10 255.255.255.0 192.168.0.1 1
更改DNS為192.168.0.1:netsh interface ip set DNS "本地連接" static 192.168.0.1刪除網關:netsh interface ip delete address "本地連接" gateway=all刪除DNS:
netsh interface ip delete dns "本地連接" all
如果執行配置時提示"指定了無效的接口",則請您開啟系統的"Remote Registry Service"服務。 上一頁123下一頁共3頁
控制面板-->管理工具-->服務-->開啟Remote Registry Service
修改ip,子網掩碼,網關,dns。“網絡連接名”是你機器上網絡屬性裡看到的連接名,把下面改成自己的連接名。
netsh interface ip set address "網絡連接名" static 192.168.0.88 255.255.255.0 192.168.0.1 1
netsh interface ip set dns "網絡連接名" static 202.216.224.66
netsh interface ip add dns "網絡連接名" 202.216.224.67 如果要改成動態分配ip和自動獲得dns使用下面命令。
netsh interface ip set address "網絡連接名" dhcp
netsh interface ip set dns "網絡連接名" dhcp由於我所處的地方要經常在不同的網絡之間切換,比如局域網、系統內部網和外網(光是外網我要常常在3個ADSL網之間切換)。我之前一直用的方法是在本機上設置多個不同網段的IP,然後切換路由(Route),這樣不同的網段通過不同的網關出去,就可以達到同時訪問多個網絡的目的。但是這樣我發現經常可能出現一些問題,所以我決定用最原始的方法來解決,那就是在要使用某一個網段的時候就只用這個網段的IP,這樣就需要不停的更換IP地址。當然,在Windows的“網絡連接”屬性中這樣的更改是很麻煩的,不過還好的是,Windows的“netsh”命令提供了命令行下更改IP的功能,利用這一點,可以將它做成BAT的批處理文件,就方便多了。以下就是具體的方法和命令詳解:首先進入命令提示行:“Win+R”>“cmd”,回車
輸入netsh,回車,出現:netsh>
再輸入interface,回車,出現netsh interface>
再輸入ip,回車,出現netsh interface ip>進入IP設置項了,我們要用到以下的命令:
set address - 添加一個 IP 地址到指定的接口。先看看關於此令的windows幫助:
--------------------------------------------------------------------------
用法: set address [name=]
[[source=]dhcp |
[source=] static [addr=]IP address [mask=]IP subnet mask]
[[gateway=]
name - 接口名稱。
source - 下列值之一:
dhcp: 對於指定接口,設置用 DHCP 配置 IP
地址。
static: 設置使用本地靜態配置設置 IP
地址。 gateway - 下列值之一:
網關。
none: 不設置默認網關。
gwmetric - 默認網關的躍點數。如果網關設置為 'none',則
不應設置此字段。
只有在 'source' 為 'static' 時才設置下列選項: addr - 指定接口的 IP 地址。
mask - 指定 IP 地址的子網掩碼。注釋 : 用來將 IP 地址配置模式從 DHCP 模式改為 static,或從 static
模式改為 DHCP。用靜態 IP 地址在接口上添加 IP 地址,或添加
默認網關。
示例 : set address name="Local Area Connection" source=dhcp
set address local static 10.0.0.9 255.0.0.0 10.0.0.1 1
----------------------------------------------------------------------------了解了用法之後,我們就可以進行設置了: 上一頁12 3下一頁共3頁
在netsh interface ip>之後輸入
set address "本地連接" static 192.168.4.23 255.255.255.192 192.168.4.1 1
然後回車,稍候會顯示“確定”,IP設置完畢。
這裡解釋一下,“本地連接”是指Windows“網絡屬性”中看到的連接的名稱,static表示要指定靜態IP而非DHCP指派,後面三個分別是IP,子網掩碼,網關,最後的“1”是指默認網關的躍點數,一般為“1”。至此,命令行下設置IP完成。
同時你還可以在命令行下更改DNS設置,用的是set dns命令,你可以輸入set dns /?查看使用方法。最後,我們將這些命令保存為一個BAT文件(setIP192168423.bat):
@echo off
rem eth //eth 為網卡名稱,可在網絡連接中查詢,如"本地連接"
set eth="本地連接"
rem ip //ip 為你想更改的IP
set ip=192.168.4.23
rem gw //gw 為網關地址
set gw=192.168.4.1
rem netmasks //netmasks 為子網掩碼
set netmasks=255.255.255.192
echo 正在將本機IP更改到: %ip%
rem
if %gw%==none netsh interface ip set address %eth% static %ip% %netmasks% %gw% > nul
if not %gw%==none netsh interface ip set address %eth% static %ip% %netmasks% %gw% 1 > nul
echo..............