Contents ...
udn網路城邦
透過 netsh 指令快速切換IP
2010/01/02 21:43
瀏覽9,328
迴響0
推薦1
引用0

下面是網路看來的整理

時常都要切換網路卡的 TCP/IP 設定,

每次都透過介面切換也實在很煩。

用軟體又有點慢且要多裝一個軟體

首先,先介紹如何設定網路介面到 DHCP 模式

1. 先查到你的網路卡介面名稱,如下圖示,你的名稱就是【區域連線】四個字。

    網際網路連線設定 

2. 再利用記事本(Notepad)開啟一份新文件,並且命名為 SwitchToDHCP.bat

3. 輸入以下指令碼(由於 Windows XP 與 Windows Vista 的指令有些差異,因此分開列表)

  • Windows 2000 / XP / 2003
    netsh interface ip set address "區域連線" source=dhcp
    
    netsh interface ip set dns "區域連線" source=dhcp
  • Windows Vista / 2008
    netsh interface ip set address   "區域連線" source=dhcp
    
    netsh interface ip set dnsserver "區域連線" source=dhcp

再來,介紹如何設定網路介面到靜態 IP 模式

1. 先查到你的網路卡介面名稱,如上圖示。

2. 再利用記事本(Notepad)開啟一份新文件,並且命名為 SwitchTo公司內部IP.bat

3. 輸入以下指令碼(由於 Windows XP 與 Windows Vista 的指令有些差異,因此分開列表)

  • Windows 2000 / XP / 2003
    netsh interface ip set address "區域連線" static 10.10.1.168 255.255.255.0 10.10.1.254 1
    
    netsh interface ip set dns "區域連線" static 10.10.1.1 primary
  • Windows Vista / 2008
    netsh interface ip set address   "區域連線" static 10.10.1.168 255.255.255.0 10.10.1.254 1
    
    netsh interface ip set dnsserver "區域連線" static 10.10.1.254 primary

設定靜態 IP 時,標準的指令公式如下:

  • Windows 2000 / XP / 2003
    netsh interface ip set address "<介面名稱>" static [IP] [子網路遮罩] [預設閘道] [閘道公制]
    
    netsh interface ip set dns "<介面名稱>" static [名稱伺服器位址] primary
  • Windows Vista / 2008
    netsh interface ip set address "<介面名稱>" static [IP] [子網路遮罩] [預設閘道] [閘道公制]
    
    netsh interface ip set dnsserver "<介面名稱>" static [名稱伺服器位址] primary

當然,這只是針對網路介面卡做基本的設定,如果要將你現有的網路設定「完整紀錄」下來的話,可以利用以下指令達成:

netsh -c interface dump > netsh_office.cfg

上面那個指令是將你現在的網路設定全部匯出(dump)到 netsh_office.cfg 檔案中。若下次要將設定還原,可以直接利用以下指令達成:

netsh -f netsh_office.cfg

當然,載入 netsh 設定檔的指令一樣可以寫成批次檔。

*增加第二個DNS
set dns name="區域連線" source=static addr=*.*.*.* register=PRIMARY
add dns name="區域連線" addr=*.*.*.* index=2

第一次使用時需要先生成必備的文件(需要等待執行完畢)之後就不必囉。
請先將 TCP/IP 的 IP address 相關資料改成公司的,然後開啟命令列模式也就是 MS-DOS 視窗,輸入

netsh -c interface dump > company.txt

此動作是將公司的設定值存入 company.txt 文字檔內

在來將 TCP/IP 的 IP address 相關資料改成家裡的,同樣在MS-DOS 視窗,輸入

netsh -c interface dump > home.txt

此動作是將家裡的設定值存入 home.txt 文字檔內,之後我們自己寫兩個批次檔

一個為 company.bat 內容為 
netsh -f company.txt

另一個為 home.bat 內容為
netsh -f home.txt

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

@ECHO OFF
@ECHO Updateing IP, Subnet Mask, Gateway IP...
netsh interface ip set address "區域連線" static 192.168.10.100 255.255.255.0 192.168.10.1 1
@ECHO Updateing DNS Server IP...
netsh interface ip set dns "區域連線" static 192.168.10.1 primary
@ECHO 更新完畢!請按下任意鍵關閉!pause


備註:
IP = 192.168.10.100
Subnet = 255.255.255.0
Gateway = 192.168.10.1
DNS = 192.168.10.1
以上4個請依照你的需要改變~

*最長那一行,最後面有一個1 那是正確的,不要把他刪了阿!記得要空一格!
netsh interface ip set address "區域連線" static 192.168.10.100 255.255.255.0 192.168.10.1 1

 

例如:DHCP.bat
netsh interface ip set address "區域連線" dhcp
netsh interface ip set dns "區域連線" source=dhcp

例如:FixedIP.bat
netsh interface ip set address "區域連線" static 192.168.0.201 255.255.255.0 192.168.0.251 1
netsh interface ip set dns "區域連線" static 168.95.1.1
netsh interface ip add dns "區域連線" 168.95.192.1

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

以下是微軟官網的文章

Netsh.exe 工具執行下列工作:

  • 設定介面。
  • 設定路由通訊協定。
  • 設定篩選器。
  • 設定路由。
  • 為執行路由及遠端存取伺服器 (RRAS) 服務的 Windows 遠端存取路由器,設定遠端存取行為。
  • 顯示目前在任何電腦上執行路由器的設定。
  • 使用指令碼功能,針對指定路由器以批次模式執行命令集合。

Netsh.exe 工具的語法是:

netsh [-r router name] [-a AliasFile] [-c Context] [Command | -f ScriptFile]

如果要顯示內容中可以使用的子內容和命令清單,請在 netsh> 命令提示字元輸入內容名稱,後面加上空格和 ?。例如,如果要顯示可以在 /routing 內容使用的子內容和命令清單,請在 netsh> 命令提示字元輸入 routing ?,然後按 ENTER。

內容

內容字串會附加在 Netsh.exe 工具命令之後,傳送至相關的協助程式。協助程式可以有一或多個對應至內容的進入點。Netsh.exe 工具中可使用的部分內容如下:

內容命令:/dhcp
結果:變更為動態主機設定通訊協定 (DHCP) 內容。

內容命令:/ras
結果:變更為遠端存取伺服器 (RAS) 內容。

內容命令:/routing
結果:變更為路由內容。

內容命令:/wins
結果:變更為 Windows 網際網路名稱服務 (WINS) 內容。

內容也可以巢狀於其他內容中。例如,下列內容可以在 netsh>ras 內容中操作:

內容命令:/ip
結果:變更為網際網路通訊協定 (IP) 內容。

內容命令:/ipx
結果:變更為網際網路封包交換 (IPX) 內容。

內容命令:/netbeui
結果:變更為 NetBIOS 增強型使用者介面 (NETBEUI) 內容。

下列子內容可以在 netsh>routing ip 內容中操作:

內容命令:/autodhcp
結果:變更為 autodhcp 子內容。

內容命令:/dnsproxy
結果:變更為 dnsproxy 子內容。

內容命令:/igmp
結果:變更為網際網路群組成員資格通訊協定 (IGMP) 子內容。

內容命令:/mib
結果:變更為管理資訊庫 (MIB) 子內容。

內容命令:/nat
結果:變更為網路位址轉譯 (NAT) 子內容。

內容命令:/ospf
結果:變更為先開啟最短的路徑 (OSPF) 子內容。

內容命令:/relay
結果:變更為轉接子內容。

內容命令:/rip
結果:變更為路由資訊通訊協定 (RIP) 子內容。

Netsh.exe 命令

下列附加命令可以與 Netsh.exe 工具一起使用:

注意: 選擇性參數顯示在方括弧 ([ ]) 中。替代項目之間會顯示直線 (|) 字元。

內容命令:/?
結果:顯示說明。

內容命令:/abort
結果:捨棄在離線模式進行的任何變更。在連線模式下沒有作用。

內容命令:/add helper DLL-name
結果:在 netsh.exe 中安裝協助程式 .dll 檔案。

內容命令:/alias [alias-name] [string1] [string2 ...]
結果:如果為 /alias,則列出所有別名。如果為 /alias alias-name,則顯示相等的字串。如果為 /alias alias-name string1 string2 ...,則將 alias-name 設定為指定字串。

內容命令:/bye
結果:結束程式。

內容命令:/commit
結果:將離線模式下進行的任何變更認可至路由器。在連線模式下沒有作用。

內容命令:/delete helper .dll file name
結果:移除 Netsh.exe 中的協助程式 .dll 檔案。

內容命令:/dump -file name
結果:將設定傾印或附加至文字檔案。

內容命令:/exec script file name
結果:載入指令檔,並執行其中的命令。

內容命令:/exit
結果:結束程式。

內容命令:/h
結果:顯示說明。

內容命令:/help
結果:顯示說明。

內容命令:/offline
結果:將目前的模式設定為離線。將儲存在此模式下進行的任何變更,但需要使用 commit 或 online 命令才會在路由器中設定變更。

內容命令:/online
結果:將目前的模式設定為連線。在此模式下的任何變更會立即反映在路由器中。

內容命令:/popd
結果:顯示堆疊中的內容。

內容命令:/pushd
結果:將目前內容推入堆疊中。

內容命令:/quit
結果:結束程式。

內容命令:/set mode [mode =] online | offline
結果:將目前的模式設定為連線或離線。

內容命令:/show alias | helper | mode
結果:如果為 /show alias,則列出所有定義的別名。如果為 /show helper,則列出所有最上層的協助程式。如果為 /show mode,則顯示目前的模式。

內容命令:/unalias alias name
結果:刪除指定別名。

可用的協助程式動態連結程式庫檔案

路由及遠端存取 IP 設定 - Ipmontr.dll
路由及遠端存取 IPX 設定 - Ipxmontr.dll
介面 - Ifmon.dll
RAS - Rasmontr.dll
DHCP - Dhcpmon.dll
WINS - Winsmon.dll

協助程式動態連結程式庫檔案的相關登錄項目

HKEY_LOCAL_MACHINE/Software/Microsoft/NetSh/

REG_SZ:Ipmontr.dll
REG_SZ:Ipxmontr.dll
REG_SZ:Ifmon.dll
REG_SZ:Rasmontr.dll
REG_SZ:Dhcpmon.dll
REG_SZ:Winsmon.dll


注意:如果嘗試使用 Netsh dump -<file name> 以將設定傾印至檔案時失敗,請嘗試使用語法:netsh dump >filename 或 path\filename (從命令列執行)。

有誰推薦more
發表迴響

會員登入