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
Deklarieren Sie ULONG-Variablen mit dem Namen
NTEContextund , die beide mitNTEInstance0 (null) initialisiert wurden.Hinweis
Die
NTEContextVariable ist der einzige Parameter für die DeleteIPAddress-Funktion. Um die hinzugefügte IP-Adresse zu löschen,NTEContextmuss gespeichert und unverändert sein.ULONG NTEContext = 0; ULONG NTEInstance = 0;Hinweis
Deklarieren Sie Variablen für die STRUKTUREN IPAddr und IPMask mit den Namen
iaIPAddressiaIPMaskbzw. . Diese Werte sind einfach ganze Zahlen ohne Vorzeichen. Initialisieren Sie dieiaIPAddressVariablen undiaIPMaskmithilfe der _ Inet-Addrfunktion.UINT iaIPAddress; UINT iaIPMask; iaIPAddress = inet_addr("192.168.0.5"); iaIPMask = inet_addr("255.255.255.0");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
pIPAddrTablehat. 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
NTEContextVariable als Parameter. Suchen Sie nach Fehlern, und geben Sie den Fehlerwert an die DWORD-Variable zurückdwRetVal(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