Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
lsd dummy mioche

Inscrit le: 30 Jan 2003 Messages: 1
|
Posté le: Jeu Jan 30, 2003 3:36 pm Sujet du message: prog reseau en C sous Linux |
|
|
Je veux récupérer mon ip dans un programme en C. Or la fonction gethostbyname() me renvoie 2 ip qui ne correspondent pas à celle retournée lors du démarrage du driver de mon modem. Quelqu'un a une solution ? Faut-il passer par sysctl ?
Merci d'avance !  |
|
Revenir en haut |
|
 |
Petey dummy mioche

Inscrit le: 15 Avr 2004 Messages: 5 Localisation: Region Parisienne
|
Posté le: Jeu Avr 15, 2004 3:32 pm Sujet du message: |
|
|
Ouep j'ai le même problème. Je me demande si le fichier etc/hosts n'intervient pas quelque part la-dedans ??
Quelqu'un aurait-il des infos recentes à ce sujet ?
 _________________ Comme ils disent à Varsovie : Boire ou conduire, de toute façon on a pas de voiture... |
|
Revenir en haut |
|
 |
Petey dummy mioche

Inscrit le: 15 Avr 2004 Messages: 5 Localisation: Region Parisienne
|
Posté le: Jeu Avr 15, 2004 11:48 pm Sujet du message: |
|
|
J'ai trouvé une fonction qui marche nikel !!!
Citation: |
char *recup_ip(void)
{
int s;
char *ip;
struct ifreq buffer;
struct sockaddr_in inetAddr;
s = socket (PF_INET, SOCK_DGRAM, 0);
ip = (char *)malloc (16);
memset (&buffer, 0, sizeof (buffer));
strcpy (buffer.ifr_name, "ppp0");
ioctl (s, SIOCGIFADDR, &buffer);
memcpy (&inetAddr, &(buffer.ifr_addr), sizeof (struct sockaddr_in));
strcpy(ip, inet_ntoa(inetAddr.sin_addr));
shutdown (s, 2);
return ip;
}
|
Je l'aime cette fonction !!  _________________ Comme ils disent à Varsovie : Boire ou conduire, de toute façon on a pas de voiture... |
|
Revenir en haut |
|
 |
Petey dummy mioche

Inscrit le: 15 Avr 2004 Messages: 5 Localisation: Region Parisienne
|
Posté le: Jeu Avr 15, 2004 11:50 pm Sujet du message: |
|
|
Je vous rajoute les includes qu'il faut pour le même prix :
Citation: |
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <net/if.h>
#include <netinet/if_ether.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
|
 _________________ Comme ils disent à Varsovie : Boire ou conduire, de toute façon on a pas de voiture... |
|
Revenir en haut |
|
 |
|