使用 AddIPAddress、DeleteIPAddress 管理 IP 位址
AddIPAddress函式會將指定的 IPv4 位址新增至指定的配接器。 DeleteIPAddress函式會從指定的配接器中刪除指定的 IPv4 位址。 這些函式可用來將 IPv4 位址新增和刪除至網路介面卡。
AddIPAddress函式所新增的 IPv4 位址不是持續性的。 只要配接器物件存在,IPv4 位址才會存在。 重新開機電腦會終結 IPv4 位址,如同手動重設網路介面卡 (NIC) 。
成功呼叫 AddIPAddress 之後,將會針對新增的 IP 位址停用 DHCP。 因此,需要啟用 DHCP 的 IpReleaseAddress等函式將無法在新增的 IP 位址上運作。 DeleteIPAddress函式可用來刪除新增的 IPv4 位址。
注意
網路上的群組原則、企業原則和其他限制可能會防止這些函式順利完成。 嘗試使用這些函式之前,請確定應用程式具有必要的網路許可權。
使用 AddIPAddress
宣告名為 和
NTEInstance
的NTEContext
ULONG變數,兩者都初始化為零。注意
變數
NTEContext
是 DeleteIPAddress 函式的唯一參數;若要刪除新增的 IP 位址,NTEContext
必須儲存並變更。ULONG NTEContext = 0; ULONG NTEInstance = 0;
注意
分別宣告名為
iaIPAddress
和iaIPMask
的 IPAddr 和 IPMask 結構的變數。 這些值只是不帶正負號的整數。iaIPAddress
使用inet_addr函式初始化 和iaIPMask
變數。UINT iaIPAddress; UINT iaIPMask; iaIPAddress = inet_addr("192.168.0.5"); iaIPMask = inet_addr("255.255.255.0");
呼叫 AddIPAddress 函式以新增 IPv4 位址。 檢查錯誤,並將錯誤值傳回 至 DWORD 變數
dwRetVal
(,以取得更廣泛的錯誤檢查) 。dwRetVal = AddIPAddress(iaIPAddress, iaIPMask, pIPAddrTable->table[0].dwIndex, &NTEContext, &NTEInstance); if (dwRetVal != NO_ERROR) { printf("AddIPAddress call failed with %d\n", dwRetVal); }
注意
第三個參數是配接器索引,可藉由呼叫 GetIpAddrTable 函式來取得。 假設此函式傳回的變數名為
pIPAddrTable
。 如需 GetIpAddrTable 函式的說明,請參閱 使用 GetIpAddrTable 管理 IP 位址。
使用 DeleteIpAddress
- 呼叫 DeleteIPAddress 函式,並
NTEContext
傳遞變數做為其參數。 檢查錯誤,並將錯誤值傳回 至 DWORD 變數dwRetVal
(,以取得更廣泛的錯誤檢查) 。dwRetVal = DeleteIPAddress(NTEContext); if (dwRetVal != NO_ERROR) { printf("\tDeleteIPAddress failed with error: %d\n", dwRetVal); }
注意
若要使用 DeleteIPAddress,必須先呼叫 AddIPAddress 以取得控制碼 NTEContext
。 上一個程式假設 AddIPAddress 已在程式碼中的某處呼叫,而且已儲存並 NTEContext
維持未更正狀態。
下一個步驟: 使用 GetIpStatistics 擷取資訊
上一個步驟: 使用 IpReleaseAddress 和 IpRenewAddress 管理 DHCP 租用