Gérer les baux DHCP avec IpReleaseAddress, IpRenewAddress
Les fonctions IpReleaseAddress et IpRenewAddress sont utilisées pour libérer et renouveler le bail DHCP (Dynamic Host Configuration Protocol) actuel. La fonction IpReleaseAddress libère une adresse IPv4 précédemment obtenue via DHCP. La fonction IpRenewAddress renouvelle un bail sur une adresse IPv4 précédemment obtenue via DHCP. Il est courant d’utiliser ces deux fonctions ensemble, d’abord en libérant le bail avec un appel à IpReleaseAddress, puis en renouvelant le bail avec un appel à la fonction IpRenewAddress .
Lorsqu’un client DHCP a déjà obtenu un bail DHCP et qu’IpReleaseAddress n’est pas appelé avant la fonction IpRenewAddress , la requête du client DHCP est envoyée au serveur DHCP qui a émis le bail DHCP initial. Ce serveur DHCP peut ne pas être disponible ou la requête DHCP peut échouer. Lorsqu’un hôte a précédemment obtenu un bail DHCP et qu’IpReleaseAddress est appelé avant la fonction IpRenewAddress , le client DHCP libère d’abord l’adresse IP obtenue et envoie une demande de client DHCP pour obtenir une réponse à partir de n’importe quel serveur DHCP disponible.
Notes
Les fonctions IpReleaseAddress et IpRenewAddress nécessitent que DHCP soit activé pour fonctionner correctement.
La fonction IpReleaseAddress prend un pointeur vers une structure IP_ADAPTER_INDEX_MAP comme seul paramètre. Pour obtenir ce paramètre, appelez d’abord GetInterfaceInfo. Pour obtenir de l’aide sur la fonction GetInterfaceInfo , consultez Gestion des interfaces à l’aide de GetInterfaceInfo.
Pour utiliser IpReleaseAddress
Obtenez un pointeur vers une structure IP_ADAPTER_INDEX_MAP à l’aide de la fonction GetInterfaceInfo . (Pour obtenir de l’aide sur la fonction GetInterfaceInfo, consultez Gestion des interfaces à l’aide de GetInterfaceInfo). Créez un objet
dwRetVal
DWORD (utilisé pour la vérification des erreurs). Il est supposé que la variable retournée par GetInterfaceInfo est appeléepInfo
.DWORD dwRetVal;
Si DHCP est activé, appelez la fonction IpReleaseAddress, en passant la variable
Adapter
IP_ADAPTER_INDEX_MAP comme paramètre. Recherchez les erreurs générales et retournez sa valeur à la variabledwRetVal
DWORD (pour une vérification plus approfondie des erreurs).Notes
La fonction GetAdaptersInfo retourne un paramètre qui peut être utilisé pour case activée si DHCP est activé avant d’appeler ces fonctions. Pour obtenir de l’aide sur GetAdaptersInfo, consultez Gestion des cartes réseau à l’aide de GetAdaptersInfo.
if ((dwRetVal = IpReleaseAddress(&pInfo->Adapter[0])) == NO_ERROR) { printf("Ip Release succeeded.\n"); }
Notes
Il est courant d’utiliser ces deux fonctions ensemble, en appelant la fonction IpReleaseAddress , puis en appelant la fonction IpRenewAddress , en passant la même structure que le paramètre aux deux fonctions. La procédure suivante suppose que les fonctions ne sont pas utilisées ensemble ; Toutefois, si les fonctions sont utilisées ensemble, ignorez l’étape 1.
Pour utiliser IpRenewAddress
Obtenez un pointeur vers une structure IP_ADAPTER_INDEX_MAP à l’aide de la fonction GetInterfaceInfo . (Pour obtenir de l’aide sur la fonction GetInterfaceInfo , consultez Gestion des interfaces à l’aide de GetInterfaceInfo). Déclarez un objet
dwRetVal
DWORD (utilisé pour la vérification des erreurs) si cette variable n’a pas été déclarée. Il est supposé que la variable retournée par GetInterfaceInfo est appeléepInfo
.DWORD dwRetVal;
Appelez la fonction IpRenewAddress, en passant la variable
Adapter
IP_ADAPTER_INDEX_MAP comme paramètre. Recherchez les erreurs générales et retournez sa valeur à la variabledwRetVal
DWORD (pour une vérification plus approfondie des erreurs).if ((dwRetVal = IpRenewAddress(&pInfo->Adapter[0])) == NO_ERROR) { printf("Ip Renew succeeded.\n"); }
Étape suivante : Gestion des adresses IP à l’aide de AddIPAddress et DeleteIPAddress
Étape précédente : Gestion des adresses IP à l’aide de GetIpAddrTable