Verwalten von DHCP-Leases mit IpReleaseAddress, IpRenewAddress
Die Funktionen IpReleaseAddress und IpRenewAddress werden verwendet, um die aktuelle DHCP-Lease (Dynamic Host Configuration Protocol) frei zu geben und zu erneuern. Die IpReleaseAddress-Funktion gibt eine zuvor über DHCP erhaltene IPv4-Adresse frei. Die IpRenewAddress-Funktion erneuert eine Lease für eine IPv4-Adresse, die zuvor über DHCP bezogen wurde. Es ist üblich, diese beiden Funktionen zusammen zu verwenden, wobei zuerst die Lease mit einem Aufruf von IpReleaseAddress und dann die Lease mit einem Aufruf der IpRenewAddress-Funktion verlängert wird.
Wenn ein DHCP-Client zuvor eine DHCP-Lease erhalten hat und IpReleaseAddress nicht vor der IpRenewAddress-Funktion aufgerufen wird, wird die DHCP-Clientanforderung an den DHCP-Server gesendet, der die anfängliche DHCP-Lease ausgestellt hat. Dieser DHCP-Server ist möglicherweise nicht verfügbar, oder die DHCP-Anforderung kann fehlschlagen. Wenn ein Host zuvor eine DHCP-Lease erhalten hat und IpReleaseAddress vor der IpRenewAddress-Funktion aufgerufen wird, gibt der DHCP-Client zuerst die erhaltene IP-Adresse frei und sendet eine DHCP-Clientanforderung für eine Antwort von jedem verfügbaren DHCP-Server.
Hinweis
Die Funktionen IpReleaseAddress und IpRenewAddress erfordern, dass DHCP für eine korrekte Ausführung aktiviert ist.
Die IpReleaseAddress-Funktion verwendet einen Zeiger auf eine INDEX MAP-Struktur des _ IP-Adapters _ _ als einzigen Parameter. Um diesen Parameter zu erhalten, rufen Sie zunächst GetInterfaceInfo auf. Hilfe zur GetInterfaceInfo-Funktion finden Sie unter Verwalten von Schnittstellen mit GetInterfaceInfo.
So verwenden Sie IpReleaseAddress
Abrufen eines Zeigers auf eine INDEX MAP-Struktur des _ _ _ IP-Adapters mithilfe der GetInterfaceInfo-Funktion. (Hilfe zur GetInterfaceInfo-Funktion finden Sie unter Verwalten von Schnittstellen mit GetInterfaceInfo). Erstellen Sie ein DWORD-Objekt
dwRetVal(das für die Fehlerüberprüfung verwendet wird). Es wird davon ausgegangen, dass die von GetInterfaceInfo zurückgegebene Variable aufgerufenpInfowird.DWORD dwRetVal;Wenn DHCP aktiviert ist, rufen Sie die IpReleaseAddress-Funktion auf, und übergeben Sie die INDEX _ _ _ MAP-Variable des IP-Adapters
Adapterals Parameter. Suchen Sie nach allgemeinen Fehlern, und geben Sie den Wert an die DWORD-VariabledwRetValzurück (für eine umfassendere Fehlerüberprüfung).Hinweis
Die GetAdaptersInfo-Funktion gibt einen Parameter zurück, mit dem vor dem Aufrufen dieser Funktionen überprüft werden kann, ob DHCP aktiviert ist. Hilfe zu GetAdaptersInfo finden Sie unter Verwalten von Netzwerkadaptern mit GetAdaptersInfo.
if ((dwRetVal = IpReleaseAddress(&pInfo->Adapter[0])) == NO_ERROR) { printf("Ip Release succeeded.\n"); }
Hinweis
Es ist üblich, diese beiden Funktionen zusammen zu verwenden, indem die IpReleaseAddress-Funktion aufgerufen und dann die IpRenewAddress-Funktion aufgerufen wird, und die gleiche Struktur wie der Parameter an beide Funktionen übergeben wird. Im folgenden Verfahren wird davon ausgegangen, dass die Funktionen nicht zusammen verwendet werden. Wenn die Funktionen jedoch zusammen verwendet werden, überspringen Sie Schritt 1.
So verwenden Sie IpRenewAddress
Abrufen eines Zeigers auf eine INDEX MAP-Struktur des _ _ _ IP-Adapters mithilfe der GetInterfaceInfo-Funktion. (Hilfe zur GetInterfaceInfo-Funktion finden Sie unter Verwalten von Schnittstellen mit GetInterfaceInfo). Deklarieren Sie ein DWORD-Objekt
dwRetVal(das für die Fehlerüberprüfung verwendet wird), wenn diese Variable nicht deklariert wurde. Es wird davon ausgegangen, dass die von GetInterfaceInfo zurückgegebene Variable aufgerufenpInfowird.DWORD dwRetVal;Rufen Sie die IpRenewAddress-Funktion auf, und übergeben Sie die INDEX _ _ _ MAP-Variable des IP-Adapters
Adapterals Parameter. Suchen Sie nach allgemeinen Fehlern, und geben Sie den Wert an die DWORD-VariabledwRetValzurück (für eine umfassendere Fehlerüberprüfung).if ((dwRetVal = IpRenewAddress(&pInfo->Adapter[0])) == NO_ERROR) { printf("Ip Renew succeeded.\n"); }
Nächster Schritt: Verwalten von IP-Adressen mit addIPAddress und DeleteIPAddress
Vorheriger Schritt: Verwalten von IP-Adressen mit GetIpAddrTable