windows中ip的儲存與設定
修改ip命令:netsh inte***ce ipv4 set address name="本地連線" source=static addr=10.1.50.64 mask=255.255.248.0 gateway=10.1.48.1;//不一定是本地連線,具體可以看網路連線中的網路連線名,獲取命令netsh inte***ce show inte***ce檢視介面名稱
ip在登錄檔中存放的位置:hkey_local_machine\system\currentcontrolset\services\tcpip\parameters\inte***ces,inte***ces下有幾個guid是根據安裝的時候生成的。
如果裡面有資料,應該會有ipaddress等鍵,值就是ip的字串,如果單純修改那個字串需要重啟該ip才能生效,獲取禁用網路介面卡然後啟動網路介面卡才能生效。也可以呼叫netcfgx.dll中呼叫的dhcpcsvc.dll中乙個未公開的api:dhcpnotifyconfigchange
未公開函式dhcpnotifyconfigchange位於 dhcpcsvc.dll中,原型如下:
bool dhcpnotifyconfigchange(
lpwstr lpwszservername, // 本地機器為null
lpwstr lpwszadaptername, // 介面卡名稱
bool bnewipaddress, // true表示更改ip
dword dwipindex, // 指明第幾個ip位址,如果只有該介面只有乙個ip位址則為0
dword dwipaddress, // ip位址
dword dwsubnetmask, // 子網掩碼
int ndhcpaction ); // 對dhcp的操作 0:不修改, 1:啟用 dhcp,2:禁用 dhcp
hkey_local_machine\system\currentcontrolset\control\class\表項中有許多00開頭的項,裡面的ndi\inte***ces有乙個鍵名為lowerrange,如果其對應字串值為ethernet,表示其為網路介面卡。回到00開頭的項有乙個鍵為netcfginstanceid的項,其值為guid,就是上面說的hkey_local_machine\system\currentcontrolset\services\tcpip\parameters\inte***ces下的項的名稱,
getadaptersinfo(pipadapteinfo, &dwsize);也可以獲取對應介面卡名稱,乙個guid
hkey_local_machine\system\currentcontrolset\control\network\下有乙個網路介面卡對應的guid,guid下面有乙個名為connectd項,裡面有乙個名為name的鍵,對應的值就是修改ip命令中的name,也是網路連線中名字獲取這個名字之後可以通過修改ip命令修改對應的ip了。
addipaddress和setipaddress或許也可以嘗試
IP位址中的保留位址
保留ip位址的分配 網際網路上的ip位址統一由乙個叫iana internet assigned numbers authority,網際網路網路號分配機構 的組織來管理。根據用途和安全性級別的不同,ip位址還可以大致分為兩類 公共位址和私有位址。公用位址在internet中使用,可以在intern...
IP位址中的保留位址
保留ip位址的分配 網際網路上的ip位址統一由乙個叫iana internet assigned numbers authority,網際網路網路號分配機構 的組織來管理。根據用途和安全性級別的不同,ip位址還可以大致分為兩類 公共位址和私有位址。公用位址在internet中使用,可以在intern...
IP位址中的保留位址
保留ip位址的分配 網際網路上的ip位址統一由乙個叫iana internet assigned numbers authority,網際網路網路號分配機構 的組織來管理。根據用途和安全性級別的不同,ip位址還可以大致分為兩類 公共位址和私有位址。公用位址在internet中使用,可以在intern...