#include <netdb.h> #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> const int inet_addrstrlen=16; int main(int argc, char **argv) { char *ptr, **pptr; char str[inet_addrstrlen]; struct hostent *hptr; while(--argc>0) { ptr=*++argv; if((hptr=gethostbyname(ptr)) == NULL) { fprintf(stderr, "gethostbyname error for host: %s: %s\n", ptr, hstrerror(h_errno)); continue; } printf("official hostname: %s\n", hptr->h_name); for(pptr=hptr->h_aliases; *pptr!=NULL; pptr++) { printf("\talias: %s\n", *pptr); } switch(hptr->h_addrtype) { case AF_INET: pptr=hptr->h_addr_list; for(;*pptr!=NULL;pptr++) { printf("\taddress: %s\n", inet_ntop(hptr->h_addrtype, *pptr, str, sizeof(str))); } break; default: fprintf(stderr, "unknown address type\n"); break; } } exit(0); }