[C] - C et adresse réseau
Dernière réponse : dans Programmation
salut
quelqu'un connaitrai comment faire pour récupérer l'adresse réseau d'une machine, de la machine sur laquelle le processus est en cours d'exécution.(pas l'adresse "local" hein)
merci bien
quelqu'un connaitrai comment faire pour récupérer l'adresse réseau d'une machine, de la machine sur laquelle le processus est en cours d'exécution.(pas l'adresse "local" hein)
merci bien
Autres pages sur : adresse reseau
Lassé par la pub ? Créez un compte
kenshiro1980 a écritsalut
quelqu'un connaitrai comment faire pour récupérer l'adresse réseau d'une machine, de la machine sur laquelle le processus est en cours d'exécution.(pas l'adresse "local" hein)
merci bien
quelqu'un connaitrai comment faire pour récupérer l'adresse réseau d'une machine, de la machine sur laquelle le processus est en cours d'exécution.(pas l'adresse "local" hein)
merci bien
Salut.
Je suppose que tu es sous windaube. Bon, pour commencer, il faut savoir que ta machine peut avoir plusieurs adresses IP.
A part ce détail, c'est pas très compliqué.
#include "winsock2.h" // le début des hostilités, faudra linker le prog avec ws2_32.lib
BOOL DisplayIPs()
{
WSADATA wsaData;
int i=0;
TCHAR buf[1024];
HOSTENT * pHost=NULL;
/* on initialise la lib winsock */
if ( 0 != WSAStartup(MAKEWORD(1,0), &wsaData)) return FALSE;
/* on choppe le nom de sa machine */
if ( 0 != gethostname(buf, 1024)) return FALSE;
/* on demande à la lib de nous le traduire */
pHost=gethostbyname(buf);
/* on ne devrait pas avoir d'erreur à ce niveau mais avec krosoft, sait-on jamais... */
if ( !pHost || !pHost->h_addr_list || ! pHost->h_addr_list[0] ) return FALSE;
/* puis on boucle tant qu'on a des ips */
do
{
/* c'est pas chiant d'afficher des unsigned... */
printf("IP[%d]=%d.%d.%d.%d\n", i,
(pHost->h_addr_list[i][0] < 0) ? pHost->h_addr_list[i][0] + 256 : pHost->h_addr_list[i][0],
(pHost->h_addr_list[i][1] < 0) ? pHost->h_addr_list[i][1] + 256 : pHost->h_addr_list[i][1],
(pHost->h_addr_list[i][2] < 0) ? pHost->h_addr_list[i][2] + 256 : pHost->h_addr_list[i][2],
(pHost->h_addr_list[i][3] < 0) ? pHost->h_addr_list[i][3] + 256 : pHost->h_addr_list[i][3]);
i++;
}while ( pHost->h_addr_list[i] != NULL );
/* on ferme la lib parce qu'on est propre, nous */
WSACleanup();
/* capri !!! c'est fini !!! */
return TRUE;
}
kenshiro1980 a écriten fait non je suis pas sous windows, mais sous linux ...
t'aura pas le même pour linux ? et en supposant qu'il n'y a qu'une seule interface ethernet pour l'adresse IP locale.
t'aura pas le même pour linux ? et en supposant qu'il n'y a qu'une seule interface ethernet pour l'adresse IP locale.
c'est exactement pareil
appel à gethostname
appel à gethostbyname ensuite
parcours de la liste hostent->h_addr_list
y'a que les includes et les types qui changent.
man gethostname
man gethostbyname
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :