....
char *ptr, **pptr;
....
struct hostent *hptr;
while (--argc > 0) {
ptr = *++argv;
if ( (hptr = gethostbyname(ptr)) == NULL) {
err_msg("gethostbyname error for host: %s: %s",
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);
pptr = hptr->h_addr_list;
for ( ; *pptr != NULL; pptr++) /* В чем здесь проблема??
printf("\taddress: %s\n",inet_ntoa(*pptr)); /*
....
....
по идее дожен в купе с именами распечатать все ip'шники...но имена получаем без вопросов, а адрес выдает совершенно левый, в чем проблема я понять не могу, наверно, это затуп...
Ну, у inet_ntoa аргумент - не char *, а структура in_addr.
надо что-то вроде:
struct in_addr in;
in.s_addr = strtoul(*pptr,NULL,10);
А потом уже inet_ntoa. Только посмотри не нужен ли еще ntohl?