Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
484 connectés 

  FORUM HardWare.fr
  Programmation
  C

  connaitre adresse IP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

connaitre adresse IP

n°1489375
nORKy
Grmmph...
Posté le 11-12-2006 à 09:20:02  profilanswer
 

Bonjour,
 
quel est la meilleurs méthode pour connaitre l'adresse IP d'une interface (que l'on connait, eth1 par exemple) en C ? (linux)
Mis a part parser la sortie de ifconfig..

mood
Publicité
Posté le 11-12-2006 à 09:20:02  profilanswer
 

n°1489450
Taz
bisounours-codeur
Posté le 11-12-2006 à 11:39:31  profilanswer
 

libgtop

n°1489497
nORKy
Grmmph...
Posté le 11-12-2006 à 12:48:26  profilanswer
 

mouai... désolé, ca m'interesse pas trop. trop de dépense inutile à mes yeux (xml, glib, ...)
Je crois que je prefère parser la sortie de ifconfig eth1 :-)

n°1491355
Taz
bisounours-codeur
Posté le 14-12-2006 à 14:49:13  profilanswer
 

stupide.

n°1491392
Dumbledore
Posté le 14-12-2006 à 15:26:36  profilanswer
 

Code :
  1. #include <netinet/in.h>
  2. #include <sys/socket.h>
  3. #include <arpa/inet.h>
  4. #include <unistd.h>
  5. #include <netdb.h>
  6. #include <net/if.h>
  7. #include <sys/ioctl.h>
  8. /*!
  9. * @brief Récupérer la configuration IP d'une interface de la machine
  10. * @param ip_type : Indique le type d'adresse à renvoyer :
  11. *      -# SIOCGIFADDR = Adresse IP
  12. *      -# SIOCGIFBRDADDR = Adresse de broadcast
  13. *      -# SIOCGIFNETMASK = Masque de réseau
  14. * @param ifname : Nom de l'interface réseau donc il faut récupérer l'adresse (eth0, wifi0...)
  15. * @param addr_ip : Emplacement où sera stocké l'adresse IP (un buffer alloué)
  16. * @return 1 si l'adresse  bien été récupérée, 0 sinon
  17. */
  18. int get_ip(int ip_type,char *ifname,char *addr_ip){
  19.         if(ip_type != SIOCGIFADDR && ip_type != SIOCGIFBRDADDR && ip_type != SIOCGIFNETMASK){
  20.                 fprintf(stderr,"ERR : %s:%i : Type d'adresse indiqué non valide\n",__FILE__,__LINE__);
  21.                 return 0;
  22.         }
  23.         struct ifreq ifr;
  24.         struct sockaddr_in *addrp = NULL;
  25.         memset( &ifr, 0, sizeof( struct ifreq ) );
  26.         strncpy(ifr.ifr_name,ifname,IFNAMSIZ);
  27.         if( ioctl( sockfd, ip_type, &ifr ) == -1 ) {
  28.                 fprintf( stderr, "ERR : Ne peut obtenir l'adresse IP de %s\n",ifname);
  29.                 return 0;
  30.         }
  31.         else{
  32.                 addrp = (struct sockaddr_in *)&(ifr.ifr_addr);
  33.                 printf("DBG : %s:%i : Adresse de %s : %s\n",__FILE__,__LINE__,ifname,inet_ntoa(addrp->sin_addr));
  34.                 strcpy(addr_ip,inet_ntoa(addrp->sin_addr));
  35.                 return 1;
  36.         }
  37. }


 
Par contre, je ne suis plus tout à fait sur des #includes
 
EDIT : en fouillant sur internet ou en lisant le code de ifconfig, tu devrais pouvoir trouver le nécessaire pour obtenir la liste de toutes tes interfaces réseau. (c'est comme ça que j'ai écrit ce bout de code)


Message édité par Dumbledore le 14-12-2006 à 15:31:29
n°1491546
nORKy
Grmmph...
Posté le 14-12-2006 à 20:26:46  profilanswer
 

merci beaucoup, je vais tester
J'avais une autre piste que j'ai pas tester encore, vu que j'utilise libpcap pour faire du sniff, je pourrais utilisé celle ci car, je connais dans mon programme l'interface donc je connais l'ip, et libpcap construit une structure qui justement contient des informations sur le réseau d'une interface (dont ip, broadcast)
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  connaitre adresse IP

 

Sujets relatifs
Site internet : comment faire pour enlever la barre d'adresse....Comment connaitre les utilisateurs logués ?
VBA - Adresse imprimanteBLACKLIST - LISTE NOIR d'adresse IP à mettre sur vos site internet
adresse d'un podcastObtenir adresse ip externe (internet) de la passerelle ? image inside!
Quel language faut connaitre pour un siteweb???Adresse Mac ordinateur distant en c#
Connaitre l'utilisateur loggué sur une machine à distance[VBA] Problème de choix dans le carnet d'adresse
Plus de sujets relatifs à : connaitre adresse IP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR