Created
October 10, 2012 10:46
-
-
Save Bradshaw/3864730 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************************* | |
* * | |
* 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