次の方法で共有


AddIPAddress、DeleteIPAddress を使用して IP アドレスを管理する

AddIPAddress 関数は、指定した IPv4 アドレスを指定したアダプターに追加します。 DeleteIPAddress 関数は、指定したアダプターから指定された IPv4 アドレスを削除します。 これらの関数を使用して、ネットワーク アダプターに IPv4 アドレスを追加および削除できます。

AddIPAddress 関数によって追加された IPv4 アドレスは永続的ではありません。 IPv4 アドレスは、アダプター オブジェクトが存在する限り存在します。 ネットワーク インターフェイス カード (NIC) を手動でリセットする場合と同様に、コンピューターを再起動すると IPv4 アドレスが破棄されます。

AddIPAddress が正常に呼び出されると、追加された IP アドレスに対して DHCP が無効になります。 そのため、DHCP を有効にする必要がある IpReleaseAddress などの関数は、追加された IP アドレスでは機能しません。 DeleteIPAddress 関数を使用して、追加された IPv4 アドレスを削除できます。

注意

グループ ポリシー、エンタープライズ ポリシー、およびネットワークに関するその他の制限により、これらの機能が正常に完了しない場合があります。 これらの機能を使用する前に、アプリケーションに必要なネットワーク アクセス許可があることを確認します。

 

AddIPAddress を使用するには

  1. と という名前NTEContextULONG 変数を宣言しますNTEInstance。どちらも 0 に初期化されます。

    注意

    変数は 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);
    }
    

    注意

    3 番目のパラメーターは、 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 リースの管理