Verwalten von IP-Adressen mit AddIPAddress, DeleteIPAddress

Die AddIPAddress-Funktion fügt dem angegebenen Adapter die angegebene IPv4-Adresse hinzu. Die DeleteIPAddress-Funktion löscht die angegebene IPv4-Adresse aus dem angegebenen Adapter. Diese Funktionen können verwendet werden, um einem Netzwerkadapter IPv4-Adressen hinzuzufügen und zu löschen.

Eine von der AddIPAddress-Funktion hinzugefügte IPv4-Adresse ist nicht persistent. Die IPv4-Adresse ist nur vorhanden, solange das Adapterobjekt vorhanden ist. Durch einen Neustart des Computers wird die IPv4-Adresse zerstört, ebenso wie beim manuellen Zurücksetzen der Netzwerkschnittstellenkarte (Network Interface Card, NIC).

Nachdem AddIPAddress erfolgreich aufgerufen wurde, wird DHCP für die hinzugefügte IP-Adresse deaktiviert. Daher funktionieren Funktionen wie IpReleaseAddress,für die DHCP aktiviert werden muss, nicht für die hinzugefügte IP-Adresse. Die DeleteIPAddress-Funktion kann verwendet werden, um die hinzugefügte IPv4-Adresse zu löschen.

Hinweis

Gruppenrichtlinien, Unternehmensrichtlinien und andere Einschränkungen im Netzwerk können verhindern, dass diese Funktionen erfolgreich abgeschlossen werden. Stellen Sie sicher, dass die Anwendung über die erforderlichen Netzwerkberechtigungen verfügt, bevor Sie versuchen, diese Funktionen zu verwenden.

So verwenden Sie AddIPAddress

  1. Deklarieren Sie ULONG-Variablen mit dem Namen NTEContext und , die beide mit NTEInstance 0 (null) initialisiert wurden.

    Hinweis

    Die NTEContext Variable ist der einzige Parameter für die DeleteIPAddress-Funktion. Um die hinzugefügte IP-Adresse zu löschen, NTEContext muss gespeichert und unverändert sein.

        ULONG NTEContext = 0;
        ULONG NTEInstance = 0;
    
    

    Hinweis

  2. Deklarieren Sie Variablen für die STRUKTUREN IPAddr und IPMask mit den Namen iaIPAddress iaIPMask bzw. . Diese Werte sind einfach ganze Zahlen ohne Vorzeichen. Initialisieren Sie die iaIPAddress Variablen und iaIPMask mithilfe der _ Inet-Addrfunktion.

    UINT iaIPAddress;
    UINT iaIPMask;
    
    iaIPAddress = inet_addr("192.168.0.5");
    iaIPMask    = inet_addr("255.255.255.0");
    
  3. Rufen Sie die Funktion AddIPAddress auf, um die IPv4-Adresse hinzuzufügen. Suchen Sie nach Fehlern, und geben Sie den Fehlerwert an die DWORD-Variable zurück dwRetVal (für eine umfangreichere Fehlerüberprüfung).

    dwRetVal = AddIPAddress(iaIPAddress, iaIPMask, pIPAddrTable->table[0].dwIndex, 
                                 &NTEContext, &NTEInstance);
    if (dwRetVal != NO_ERROR) {
        printf("AddIPAddress call failed with %d\n", dwRetVal);
    }
    

    Hinweis

    Der dritte Parameter ist der Adapterindex, der durch Aufrufen der GetIpAddrTable-Funktion abgerufen werden kann. Es wird davon ausgegangen, dass die von dieser Funktion zurückgegebene Variable den Namen pIPAddrTable hat. Hilfe zur GetIpAddrTable-Funktion finden Sie unter Verwalten von IP-Adressen mit getIpAddrTable.

So verwenden Sie DeleteIpAddress

  • Rufen Sie die DeleteIPAddress-Funktion auf, und übergeben Sie die NTEContext Variable als Parameter. Suchen Sie nach Fehlern, und geben Sie den Fehlerwert an die DWORD-Variable zurück dwRetVal (für eine umfangreichere Fehlerüberprüfung).
    dwRetVal = DeleteIPAddress(NTEContext);
    if (dwRetVal != NO_ERROR) {
            printf("\tDeleteIPAddress failed with error: %d\n", dwRetVal);
    } 
    

Hinweis

Um DeleteIPAddresszu verwenden, muss addIPAddress zuerst aufgerufen werden, um das Handle NTEContext abzurufen. Bei der vorherigen Prozedur wird davon ausgegangen, dass AddIPAddress bereits an einer Stelle im Code aufgerufen wurde, NTEContext gespeichert wurde und unbestürzt bleibt.

Nächster Schritt: Abrufen von Informationen mit getIpStatistics

Vorheriger Schritt: Verwalten von DHCP-Leases mit ipReleaseAddress und IpRenewAddress