Gérer les adresses IP avec AddIPAddress, DeleteIPAddress
La fonction AddIPAddress ajoute l’adresse IPv4 spécifiée à l’adaptateur spécifié. La fonction DeleteIPAddress supprime l’adresse IPv4 spécifiée de l’adaptateur spécifié. Ces fonctions peuvent être utilisées pour ajouter et supprimer des adresses IPv4 à une carte réseau.
Une adresse IPv4 ajoutée par la fonction AddIPAddress n’est pas persistante. L’adresse IPv4 existe uniquement tant que l’objet adaptateur existe. Le redémarrage de l’ordinateur détruit l’adresse IPv4, tout comme la réinitialisation manuelle de l’interface réseau carte (NIC).
Une fois AddIPAddress appelé avec succès, DHCP est désactivé pour l’adresse IP qui a été ajoutée. Par conséquent, les fonctions telles que IpReleaseAddress, qui nécessitent l’activation du protocole DHCP, ne sont pas fonctionnelles sur l’adresse IP ajoutée. La fonction DeleteIPAddress peut être utilisée pour supprimer l’adresse IPv4 ajoutée.
Notes
Les stratégies de groupe, les stratégies d’entreprise et d’autres restrictions sur le réseau peuvent empêcher ces fonctions de s’exécuter correctement. Vérifiez que l’application dispose des autorisations réseau nécessaires avant d’essayer d’utiliser ces fonctions.
Pour utiliser AddIPAddress
Déclarez les variables ULONG nommées
NTEContext
etNTEInstance
, toutes deux initialisées à zéro.Notes
La
NTEContext
variable est le seul paramètre de la fonction DeleteIPAddress ; pour supprimer l’adresse IP ajoutée,NTEContext
doit être stockée et inchangée.ULONG NTEContext = 0; ULONG NTEInstance = 0;
Notes
Déclarez des variables pour les structures IPAddr et IPMask nommées
iaIPAddress
etiaIPMask
, respectivement. Ces valeurs sont simplement des entiers non signés. Initialisez lesiaIPAddress
variables et àiaIPMask
l’aide de la fonction inet_addr .UINT iaIPAddress; UINT iaIPMask; iaIPAddress = inet_addr("192.168.0.5"); iaIPMask = inet_addr("255.255.255.0");
Appelez la fonction AddIPAddress pour ajouter l’adresse IPv4. Recherchez les erreurs et retournez la valeur d’erreur à la variable
dwRetVal
DWORD (pour une vérification plus approfondie des erreurs).dwRetVal = AddIPAddress(iaIPAddress, iaIPMask, pIPAddrTable->table[0].dwIndex, &NTEContext, &NTEInstance); if (dwRetVal != NO_ERROR) { printf("AddIPAddress call failed with %d\n", dwRetVal); }
Notes
Le troisième paramètre est l’index de l’adaptateur, qui peut être obtenu en appelant la fonction GetIpAddrTable . Il est supposé que la variable retournée par cette fonction est nommée
pIPAddrTable
. Pour obtenir de l’aide sur la fonction GetIpAddrTable , consultez Gestion de l’adresse IP à l’aide de GetIpAddrTable.
Pour utiliser DeleteIpAddress
- Appelez la fonction DeleteIPAddress en passant la
NTEContext
variable comme paramètre. Recherchez les erreurs et retournez la valeur d’erreur à la variabledwRetVal
DWORD (pour une vérification plus approfondie des erreurs).dwRetVal = DeleteIPAddress(NTEContext); if (dwRetVal != NO_ERROR) { printf("\tDeleteIPAddress failed with error: %d\n", dwRetVal); }
Notes
Pour utiliser DeleteIPAddress, AddIPAddress doit d’abord être appelé pour obtenir le handle NTEContext
. La procédure précédente suppose que AddIPAddress a déjà été appelé quelque part dans le code, qu’il NTEContext
a été enregistré et qu’il n’est pas corrompu.
Étape suivante : Récupération d’informations à l’aide de GetIpStatistics
Étape précédente : Gestion des baux DHCP à l’aide d’IpReleaseAddress et IpRenewAddress