Récupération adresse IP de ma Passerelle en C

Récupération adresse IP de ma Passerelle en C - C - Programmation

Marsh Posté le 11-07-2018 à 12:42:54    

Bonjour,
 
 Je souhaite faire un programme en C qui mer permette de récupérer l'adresse IP de ma passerelle sur une machine windows sans aller lire l'adresse dans un fihcier.txt qui serait généré par un ipconfig>config.txt par exemple.  
 
Si vous avez des pistes je suis preneur. Je n'ai rien trouver sur le net sur ce sujet mais j'ai certainement mal cherché.
 
Merci de vos retours
 
JM

Reply

Marsh Posté le 11-07-2018 à 12:42:54   

Reply

Marsh Posté le 11-07-2018 à 12:50:00    

Reply

Marsh Posté le 11-07-2018 à 13:02:17    

Bonjour,
 
j'ai essayé d'adapter le code proposé mais c'est du C++ et je suis en C. J'ai un max d'erreurs de compil ...

Reply

Marsh Posté le 11-07-2018 à 13:13:55    

Le code est indiqué comme étant du C++ mais c'est du C. Si t'as des erreurs faut nous dire lesquels et montrer ton code si tu veux de l'aide (et nous dire quel compilateur tu utilises). Sinon tu n'es pas obligé de reprendre ce long exemple, si je vois bien pour récupérer juste une info c'est beaucoup plus court. Je peux pas tester, je suis sous Linux.


---------------
Si vous ouvrez un sujet merci de ne pas le "laisser mourir" subitement et de le marquer comme "résolu" le cas échéant!
Reply

Marsh Posté le 11-07-2018 à 13:23:28    

Le ode est le suivant :
    #include<winsock2.h>
    #include<Iphlpapi.h>
    #include<stdio.h>
 
 
 
#pragma comment(lib,"Iphlpapi.lib" )
    int main()
    {
     PIP_ADAPTER_INFO pAdapterInfo;
     PIP_ADAPTER_INFO pAdapter = NULL;
     DWORD dwRetVal = 0;
     ULONG ulOutBufLen;
     pAdapterInfo=(PIP_ADAPTER_INFO)malloc(sizeof(IP_ADAPTER_INFO));
     ulOutBufLen = sizeof(IP_ADAPTER_INFO);
 
 
 
     if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW)
     {
      free(pAdapterInfo);
      pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);
     }
 
     if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR) {
      pAdapter = pAdapterInfo;
      while (pAdapter)
      {
       printf("Gateway: \t%s\n", pAdapter->GatewayList.IpAddress.String);
       pAdapter = pAdapter->Next;
      }
     }
     else
     {
      printf("Call to GetAdaptersInfo failed.\n" );
     }
    }
 
 
Le message à la compilation est :
 
Undefined reference to "GetAdaptersInfo@8"
 
Merci à vous pour votre aide.

Reply

Marsh Posté le 11-07-2018 à 13:26:20    

filibert33 a écrit :

Undefined reference to "GetAdaptersInfo@8"

erreur du Linker, faut lui donner la bonne bibliothèque, apparemment Iphlpapi.lib. Si tu utilises GCC le pragma n'aura aucun effet, c'est prévu pour le compilateur MS. Il faut regarder dans les options de ton IDE ou modifier l'appel en ligne de commande. Sans plus d'infos impossible d'être plus concrèt.

Reply

Marsh Posté le 11-07-2018 à 13:26:22    

... et le compilateur est le GNU GCC compiler ...

Reply

Marsh Posté le 11-07-2018 à 13:30:01    

Ok je regarde comment je peux faire sous codeblock pour déclarer la bonne librairie

Reply

Marsh Posté le 11-07-2018 à 13:33:44    

Je viens de déclarer la librairie dans mon IDE ...et là  ... ca va beaucoup mieux !!! Un grand merci pour votre aide.
 
Excellente après-midi.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed