Skip to content

Instantly share code, notes, and snippets.

@Bradshaw
Created October 10, 2012 10:46
Show Gist options
  • Save Bradshaw/3864730 to your computer and use it in GitHub Desktop.
Save Bradshaw/3864730 to your computer and use it in GitHub Desktop.
/*******************************************************************************
* *
* Get IP *
* *
* Auteur: Kevin Gaël Bradshaw *
* *
* Récupère les noms d'hôte passés en argument et affiche des informations *
* obtenus depuis le DNS *
* *
* *
*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <netdb.h>
#include <sys/types.h>
#include <string.h>
int main(int argc, char** argv, char** env){
// Crée les objets qui contientront les données réseau
struct hostent *nom;
struct in_addr a;
// Si des arguments ont été spécifiés
if (argc>1) {
int i;
// Boucler sur tous les arguments
for (i=1;i<argc;i++){
// Affiche le hôte recherché
printf("\n+--------[ Hôte: %s\n|\n",argv[i]);
// Obtient les informations réseau
nom = gethostbyname(argv[i]);
// Si on a une réponse
if (nom) {
// Afficher les informations
bcopy(nom->h_addr,&a,sizeof(a));
printf("| Nom hôte: %s\n| Nom officiel: %s\n| IP: %s\n",
argv[i],nom->h_name,inet_ntoa(a));
printf("| Type: %d\n| Longueur: %d\n| \n",
nom->h_addrtype,nom->h_length);
int lenf = nom->h_length;
int c = 0;
while (nom->h_aliases[c]){
printf("| Alias n°%d: %s\n",c+1,nom->h_aliases[c]);
c++;
}
c = 0;
while (nom->h_addr_list[c]){
int j;
printf("| Adresse n°%d: ",c+1);
for (j=0;j<lenf-1;j++){
printf("%d.",(int)(u_char)nom->h_addr_list[c][j]);
}
printf("%d\n",(int)(u_char)nom->h_addr_list[c][lenf-1]);
c++;
}
printf("|\n+--------\n");
} else { // Nous n'avons pas trouvé l'hôte, problème réseau ou
// hôte inéxistant
printf("| Hôte non trouvé: %s\n|\n+--------\n",argv[i]);
}
}
} else { // Rappeller à l'utilisateur qu'il faut spécifier des arguments
printf("Appeler ce programme avec au moins un argument...\n");
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment