在一般情況我們可以使用 Windows 的 UI 介面來變更網路卡的名稱、IP 等等。但在要使用到 python 或其他程式控制時就不太合用了,所以這邊介紹使用 command 的方式來變更 Windows 中的網卡設定:
netsh interface ipv4 show interfaces
顯示每個 network adapter 的詳細訊息,包含名稱、類型、連接狀態、管理員狀態等。
netsh interface show interface
管理員狀態 (Admin State) 為 Enabled 表示啟用,Disabled 表示禁用。
查看個別 network adapter 的詳細訊息:
包括 IP address、mask、以及是否是 static 配置等訊息。以 "P56"為例:
netsh interface ipv4 show config P56
例如要把 "Ethernet 2" 更改為 "P56":
netsh interface set interface name="Ethernet 2" newname="P56"
netsh interface set interface name="yourInterfaceName" admin=disable
or
netsh interface set interface name="yourInterfaceName" admin=enable
將 "yourInterfaceName" 替換為你要 enable 的 network adapter 的名稱。
輸入下面指令,將 <InterfaceName> 替換為要更改的 adapter 的索引號(Idx)或是 Name,而 <IPAddress> 和 <SubnetMask> 替換為你希望設定的新 IP 和 mask。
netsh interface ipv4 set address name="<InterfaceName>" static <IPAddress> <SubnetMask>
例如:
netsh interface ipv4 set address name="Ethernet" static 192.168.1.2 255.255.255.0
如果今天在網卡是disable的狀態下,然後用netsh去更改IP的話,是不會嗅出任何的 error的。但會在下次enable的時候出現 IP Address都是空的狀態。
所以在更改網卡 IP 前要先確保網卡是 enable的狀態。