2015年7月21日 星期二

[C#]網路DHCP以及靜態IP切換小工具


最近因為測試系統,常常需要將網路從DHCP切換靜態IP到該系統區域網路的網域中,但是當暫停測試時,又需要將網路切換回DHCP才能夠正常對外上網。

每次做IP切換的時候都必須要開啟網路和共用中心,然後到網路介面卡選單、設定IPv4、輸入靜態IP、子網路遮罩,這麼多的步驟,每一次都要重新設定、輸入,真的很麻煩很麻煩,所以想說來寫個小工具,一方面練習練習,另一方面以後就只要一個動作就可以互相切換了!

這個工具主要利用NetworkInterface這個class來取得目前網路介面卡的狀態,再利用windows netsh 指令來更改DHCP狀態以及靜態IP。

啟動DHCP:
netsh interface ip set address "區域連線" dhcp
關閉DHCP,設定靜態IP與子網路遮罩:
netsh interface ip set address "區域連線" static 192.168.1.1 255.255.255.0

其中區域連線的部分是依照介面卡所設定的名稱來做更改。

原本在這個工具中還想要加上可以enable/disable網路介面卡的,但是又是因為windows權限問題,當我輸入以下指令
停用區域連線:
netsh interface set interface "區域連線" enable
啟用區域連線:
netsh interface set interface "區域連線" disable

貌似因為沒有權限的關係,一直顯示『尚無具有這個名稱的介面向路由器登錄。』這樣的訊息出來。

至於使用者介面部分就用Notifyicon來處理囉,整體運作與執行的呈現上如下圖所示。
有這樣的小工具就可以只要點兩下滑鼠就可以切換靜態或DHCP囉~
(謎之音:是有沒有這麼懶惰...)
附上此專案GitHub網址:https://github.com/howard10335/DHCPswitch

沒有留言:

張貼留言