Voila un ptit bout de code ki te donnera ton ip local + le nom réseau de ta machine :
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#define MAXHOSTNAME 32
/* longueur max de son propre nom de machine */
#define PORT_DIST 0x6198
/* numéro de port distant avec lequel on va tenter de
dialoguer */
/* on va ici mettre les deux extremites de la liaison sur la meme machine */
struct hostent *infohost();
void adresSock();
main()
{
int ip;
/* descripteur du socket */
struct sockaddr_in sa; /* structure adresse socket */
int ssa;
/* taille de la structure sa */
struct hostent *hp;
/* resultat de la recherche du nom */
/* recherche des infos sur la machine qui heberge le programme */
hp = infohost();
/* lecture des adresses dans la socket */
adresSock(ip);
/* mise à zero de la structure sa */
ssa = sizeof(sa);
memset(&sa, 0, ssa);
/* copie de l'adresse dans la structure sa */
bcopy((char *)hp->h_addr, (char *)&sa.sin_addr, hp->h_length);
sa.sin_family = hp->h_addrtype;
/* copie du numero de port dans la structure sa */
sa.sin_port = htons(PORT_DIST);
adresSock(ip);
}
/* infohost : recherche et affichage d'informations sur la machine hote */
struct hostent *infohost() {
char host[MAXHOSTNAME+1]; /* tableau pour accueillir le nom de machine sur lequel
tourne ce programme +1 à cause du fin de caractère . */
struct hostent *hp;
/* resultat de la recherche du nom */
char *adrIPp;
struct in_addr adrIP;
gethostname(host, MAXHOSTNAME);
printf("nom de la machine sur lequel tourne ce programme : %s\n", host);
if((hp=gethostbyname(host))==NULL)
{
fprintf(stderr, "machine non identifiee par gethostbyname\n" );
exit(1);
}
adrIP.s_addr=*(int *)hp->h_addr;
adrIPp =(char *)inet_ntoa(adrIP);
printf("adresse IP de cette machine : %s\n", adrIPp);
return(hp);
}
/* adresSock : lecture des adresses dans la socket */
void adresSock(int ip)
{
struct sockaddr_in sa;
/* structure adresse socket */
}
====================================
nom de la machine sur lequel tourne ce programme : ***
adresse IP de cette machine : 10.****.****.****
====================================