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
Deklarieren Sie ULONG-Variablen mit den Namen
NTEContext
undNTEInstance
, 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
Deklarieren Sie Variablen für die IPAddr- und IPMask-Strukturen mit den Namen
iaIPAddress
bzwiaIPMask
. . Diese Werte sind einfach ganze Zahlen ohne Vorzeichen. Initialisieren Sie dieiaIPAddress
Variablen undiaIPMask
mithilfe der funktion inet_addr .UINT iaIPAddress; UINT iaIPMask; iaIPAddress = inet_addr("192.168.0.5"); iaIPMask = inet_addr("255.255.255.0");
Rufen Sie die AddIPAddress-Funktion auf, um die IPv4-Adresse hinzuzufügen. Suchen Sie nach Fehlern, und geben Sie den Fehlerwert an die DWORD-Variable
dwRetVal
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 NTEContext
abzurufen. 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