Partager via


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

  1. Déclarez les variables ULONG nommées NTEContext et NTEInstance, 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

     

  2. Déclarez des variables pour les structures IPAddr et IPMask nommées iaIPAddress et iaIPMask, respectivement. Ces valeurs sont simplement des entiers non signés. Initialisez les iaIPAddress 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");
    
  3. Appelez la fonction AddIPAddress pour ajouter l’adresse IPv4. Recherchez les erreurs et retournez la valeur d’erreur à la variable dwRetValDWORD (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 variable dwRetValDWORD (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