Alors pour ceux qui connaisse pas les systeles Unix, la commande nslookup est une commande permettant de connaitre l'adresse IP d'un server a partir de son de domaine.
Et moi dans cet exemple je vais vous montrer comment faire la commande inverse, trouver le nom de domaine a partir d'une adresse IP.
Source / Exemple :
#include <stdio.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sys/socket.h>
int main (int argc, char *argv[])
{
//Initialisation des sockets
struct hostent *sn;
struct in_addr in;
if ( argc != 2 )
exit(1);
in.s_addr = inet_addr(argv[1]); //recuperation de l'adresse IP et on la range dans une socket
sn = gethostbyaddr((char *)&in, 4, AF_INET); //cette methode permet de recuperer le nom de l'hote (nom de domaine, ou de machine pour un machine dun particulier) , a partir de l'adresse ip ranger dans in en concatenant le resultat en type char, AF_INET corresponda au protocole ARPA qui est celui utiliser sur internet
if(sn) //si sn est non vide (donc existe)
printf("%s\n", sn->h_name); //On affiche le resultat sn pointe sur h_name qui correspond a l'hostname (nom de l'hote)
else
printf("erreur d'utilisation de la commande\n"); //si non c'est qu'il y a eu une maucaitse utilisation de la commande alors on affiche un message d'erreur
return 0;
}
Conclusion :
Une fois compiler pour executer:
./unnslookup 192.253.145.123
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.