#include <netdb.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
/*
* Internet name resolution command.
* Please give has many names you want on the command-line (at least one).
*/
int main(int argc,char *argv[]) {
struct hostent *he; int i;
if (argc<2) {
fprintf(stderr,"usage: %s name [name...]\n",argv[0]); exit(EXIT_FAILURE);
}
for (i=1; i<argc; i++) { // foreach arg
char **aliases;
struct in_addr **addresses;
printf("--------%s\n",argv[i]); // which arg it is ?
he = gethostbyname(argv[i]); // get it...
if (he==NULL) { // something's wrong, bypass
printf("unknown\n");
continue;
}
printf("Official name : %s\n",he->h_name);
aliases = he->h_aliases;
while ((*aliases)!=NULL) { // Please give me all aliases of the canonical name
printf("Alias : %s\n",*(aliases++));
}
// and every addresses
for (addresses=(struct in_addr **)he->h_addr_list; *addresses!=NULL; addresses++) {
printf("Address : %s\n",inet_ntoa(**addresses));
}
}
}