Comment obtenir le nom d'un pc a partir de son ip?
malice120
Messages postés20Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention16 janvier 2004
-
12 mai 2003 à 15:40
psyphi
Messages postés51Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention12 août 2010
-
12 août 2005 à 00:28
comment obtenir le nom d'un pc a partir de son ip?
cs_souzi
Messages postés1Date d'inscriptionjeudi 29 mai 2003StatutMembreDernière intervention29 mai 2003 29 mai 2003 à 14:33
-------------------------------
Réponse au message :
-------------------------------
> Grace à la fonction gethostbyaddr, dont voici un exemple d'utilisation :
>
> #include <winsock.h>
> #include <stdio.h>
>
> int main(int argc, char *argv[])
> {
> SOCKET sock;
> WSADATA wsaData;
> struct in_addr in;
> struct hostent *phe;
> char *hostname;
>
> WSAStartup(MAKEWORD(2,0),&wsaData);
> sock=socket(AF_INET, SOCK_STREAM, 0);
>
> in.s_addr = inet_addr(argv[1]);
> phe=gethostbyaddr((char *)&in, 4, AF_INET);
> hostname=phe->h_name;
> printf("%s", hostname);
> return 0;
> }
>
> ce simple programme permet de connaître le nom d'ordinateur de l'IP passée en paramètre.
>
> et comme je suis trop faignant pour le débugger :sleepy) , il plante si l'ip n'est pas valide.
psyphi
Messages postés51Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention12 août 2010 12 août 2005 à 00:28
J'ai un peu améliorer le code, en le rendant notamment compatible
linux, mais il ne marche pas toujours. Par exemple pour 127.0.0.1 il
retourne bien localhost mais pour 216.239.39.99 qui est l'ip de google,
le prog plante de même pour l'ip de wanadoo 193.252.122.103. Quelqu'un
sait il comment vérifier qu'un host existe?
Le code:
-------------------------
#include
#if defined(WIN32)
#include
#pragma comment(lib, "ws2_32.lib")
#else
#include
#include /* pour avoir AF_INET */
#include
#include /* pour gethostbyname() & struct hostent */