#include #include #include #include #include extern int h_errno; int main(int argc, char* argv[]) { struct hostent *hostinfo; char *haddr; char addr_string[INET6_ADDRSTRLEN]; /* long enough for a full-form IPv6 addr and a null byte */ hostinfo = gethostbyname(argv[1]); if ( ! hostinfo ) { herror("gethostbyname"); return 1; } printf("name:%s\n", hostinfo->h_name); haddr = hostinfo->h_addr_list[0]; while( *haddr ) { if ( ! inet_ntop(hostinfo->h_addrtype, haddr, addr_string, sizeof(addr_string)) ) { perror("stringifying in inet_ntop"); } else { printf("\t%s\n", addr_string); } haddr += hostinfo->h_length; } return 0; }