共用方式為


使用 AddIPAddress、DeleteIPAddress 管理 IP 位址

AddIPAddress函式會將指定的 IPv4 位址新增至指定的配接器。 DeleteIPAddress函式會從指定的配接器中刪除指定的 IPv4 位址。 這些函式可用來將 IPv4 位址新增和刪除至網路介面卡。

AddIPAddress函式所新增的 IPv4 位址不是持續性的。 只要配接器物件存在,IPv4 位址才會存在。 重新開機電腦會終結 IPv4 位址,如同手動重設網路介面卡 (NIC) 。

成功呼叫 AddIPAddress 之後,將會針對新增的 IP 位址停用 DHCP。 因此,需要啟用 DHCP 的 IpReleaseAddress等函式將無法在新增的 IP 位址上運作。 DeleteIPAddress函式可用來刪除新增的 IPv4 位址。

注意

網路上的群組原則、企業原則和其他限制可能會防止這些函式順利完成。 嘗試使用這些函式之前,請確定應用程式具有必要的網路許可權。

 

使用 AddIPAddress

  1. 宣告名為 和 NTEInstanceNTEContextULONG變數,兩者都初始化為零。

    注意

    變數 NTEContextDeleteIPAddress 函式的唯一參數;若要刪除新增的 IP 位址, NTEContext 必須儲存並變更。

     

        ULONG NTEContext = 0;
        ULONG NTEInstance = 0;
    
    

    注意

     

  2. 分別宣告名為 iaIPAddressiaIPMask 的 IPAddr 和 IPMask 結構的變數。 這些值只是不帶正負號的整數。 iaIPAddress使用inet_addr函式初始化 和 iaIPMask 變數。

    UINT iaIPAddress;
    UINT iaIPMask;
    
    iaIPAddress = inet_addr("192.168.0.5");
    iaIPMask    = inet_addr("255.255.255.0");
    
  3. 呼叫 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 租用