Unnslookup [code en c] [gcc]

Contenu du snippet

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

A voir également

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.