天天看點

windows下使用指令行修改網卡ip位址

注:netsh指令需要使用管理者通路方式運作

由于我所處的地方要經常在不同的網絡之間切換,比如區域網路、系統内部網和外網(光是外網我要常常在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=]<string> 

[[source=]dhcp | 

[source=] static [addr=]IP address [mask=]IP subnet mask] 

[[gateway=]<IP address>|none [gwmetric=]integer]

參數:

标記 值 

name - 接口名稱。 

source - 下列值之一: 

dhcp: 對于指定接口,設定用 DHCP 配置 IP 

位址。 

static: 設定使用本地靜态配置設定 IP 

位址。

gateway - 下列值之一: 

<IP address>: 您設定的 IP 位址的指定預設 

網關。 

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  

----------------------------------------------------------------------------

了解了用法之後,我們就可以進行設定了: 

在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.........................   

echo 檢查目前本機IP:   

ipconfig   

echo 成功将本機IP更改為%ip%!   

pause   

close  

本文轉自 yuxye 51CTO部落格,原文連結:

http://blog.51cto.com/fishvsfrog/1072753

繼續閱讀