Freigeben über


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 solange vorhanden, wie das Adapterobjekt vorhanden ist. Durch einen Neustart des Computers wird die IPv4-Adresse zerstört, ebenso wie das manuelle Zurücksetzen der Netzwerkschnittstelle Karte (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 den Namen NTEContext und NTEInstance, die beide mit 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 IPAddr- und IPMask-Strukturen mit den Namen iaIPAddress bzw iaIPMask. . Diese Werte sind einfach ganze Zahlen ohne Vorzeichen. Initialisieren Sie die iaIPAddress Variablen und iaIPMask mithilfe der funktion inet_addr .

    UINT iaIPAddress;
    UINT iaIPMask;
    
    iaIPAddress = inet_addr("192.168.0.5");
    iaIPMask    = inet_addr("255.255.255.0");
    
  3. Rufen Sie die AddIPAddress-Funktion auf, um die IPv4-Adresse hinzuzufügen. Suchen Sie nach Fehlern, und geben Sie den Fehlerwert an die DWORD-VariabledwRetVal zurück (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 hat pIPAddrTable. Hilfe zur GetIpAddrTable-Funktion finden Sie unter Verwalten von IP-Adressen mithilfe von 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-VariabledwRetVal zurück (für eine umfangreichere Fehlerüberprüfung).
    dwRetVal = DeleteIPAddress(NTEContext);
    if (dwRetVal != NO_ERROR) {
            printf("\tDeleteIPAddress failed with error: %d\n", dwRetVal);
    } 
    

Hinweis

Um DeleteIPAddress verwenden zu können, muss AddIPAddress zuerst aufgerufen werden, um das Handle NTEContextabzurufen. Bei der vorherigen Prozedur wird davon ausgegangen, dass AddIPAddress bereits irgendwo im Code aufgerufen wurde, NTEContext gespeichert wurde und unversundet bleibt.

 

Nächster Schritt: Abrufen von Informationen mithilfe von GetIpStatistics

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