Création d’une application d’assistance IP de base
Pour créer une application d’assistance IP de base
Créez un projet vide.
Ajoutez un fichier source C++ vide au projet.
Vérifiez que l’environnement de build fait référence aux répertoires Include, Lib et Src du Kit de développement logiciel (SDK) de plateforme.
Vérifiez que l’environnement de build est lié au fichier de bibliothèque d’assistance IP Iphlpapi.lib et au fichier de bibliothèque Winsock WS2_32.lib.
Notes
Certaines fonctions Winsock de base sont utilisées pour retourner des valeurs d’adresse IP et d’autres informations.
Commencez à programmer l’application IP Helper. Utilisez l’API IP Helper en incluant le fichier d’en-tête IP Helper.
#include <winsock2.h> #include <iphlpapi.h> #include <stdio.h> int main() { return 0; }
Notes
Le fichier d’en-tête Iphlpapi.h est requis pour les applications qui utilisent les fonctions d’assistance IP. Le fichier d’en-tête Iphlpapi.h inclut automatiquement d’autres fichiers d’en-têtes avec des structures et des énumérations utilisées par les fonctions d’assistance IP.
Les nouvelles fonctions d’assistance IP introduites dans Windows Vista et versions ultérieures sont définies dans le fichier d’en-tête Netioapi.h qui est automatiquement inclus par le fichier d’en-tête Iphlpapi.h . Le fichier d’en-tête Netioapi.h ne doit jamais être utilisé directement.
La plupart des structures et énumérations utilisées par les fonctions d’assistance IP sont définies dans les fichiers d’en-tête Iprtrmib.h, Ipexport.h et Iptypes.h . Ces fichiers d’en-tête sont automatiquement inclus dans le fichier d’en-tête Iphlpapi.h et ne doivent jamais être utilisés directement.
Dans le Kit de développement logiciel (SDK) Microsoft Windows publié pour Windows Vista et versions ultérieures, la organization des fichiers d’en-tête a changé. Certaines structures sont désormais définies dans les fichiers d’en-tête Ipmib.h, Tcpmib.h et Udpmib.h , et non dans le fichier d’en-tête Iprtrmib.h . Le fichier d’en-tête Ipmib.h inclut automatiquement le fichier d’en-tête Ifmib.h . Notez que ces fichiers d’en-tête sont automatiquement inclus dans Iprtrmib.h, qui est automatiquement inclus dans le fichier d’en-tête Iphlpapi.h .
Le fichier d’en-tête Winsock2.h pour Windows Sockets 2.0 est requis par la plupart des applications qui utilisent les API d’assistance IP. Lorsque le fichier d’en-tête Winsock2.h est requis, la ligne #include de ce fichier doit être placée avant la ligne #include pour le fichier d’en-tête Iphlpapi.h .
Le fichier d’en-tête Winsock2.h inclut en interne les éléments principaux du fichier d’en-tête Windows.h . Il n’y a donc généralement pas de ligne #include pour le fichier d’en-tête Windows.h dans les applications IP Helper. Si une ligne #include est nécessaire pour le fichier d’en-tête Windows.h , elle doit être précédée de la macro #define WIN32_LEAN_AND_MEAN. Pour des raisons historiques, l’en-tête Windows.h inclut par défaut le fichier d’en-tête Winsock.h pour Windows Sockets 1.1. Les déclarations dans le fichier d’en-tête Winsock.h pour Windows Sockets 1.1 entreront en conflit avec les déclarations dans le fichier d’en-tête Winsock2.h requis par Windows Sockets 2.0. La macro WIN32_LEAN_AND_MEAN empêche l’inclusion du fichier d’en-tête Winsock.h par le fichier d’en-tête Windows.h . Un exemple illustrant cela est illustré ci-dessous.
#ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #include <windows.h> #include <winsock2.h> #include <iphlpapi.h> #include <stdio.h> int main() { return 0; }
Notes
Cette application d’assistance IP de base utilise uniquement certaines structures de données d’adresse IP et certaines fonctions de conversion d’adresse IP en chaîne à partir de Windows Sockets 2.0. Ces fonctions Windows Sockets peuvent être utilisées sans appeler WSAStartup pour initialiser les ressources Windows Sockets et WSACleanup lorsque vous utilisez ces ressources.
Dans les applications d’assistance IP qui utilisent d’autres fonctions Winsock autres que ces adresses IP pour les fonctions de chaîne, la fonction WSAStartup doit être appelée pour initialiser les ressources Windows Sockets avant d’appeler des fonctions Windows Sockets et WSACleanup doit être appelée lorsque l’application utilise des ressources Windows Sockets.
Notes
Le fichier d’en-tête Stdio.h est requis pour l’utilisation de diverses fonctions C standard dans cette application d’assistance IP de base.
Étape suivante : Récupération d’informations à l’aide de GetNetworkParams