c-gethostbyname未知主机



我试图从URL获取IP地址,但gethostbyname总是说Unknown host。希望有人能指出我的错。这是我的代码

char *handleAddress(char *URL)
{
struct hostent *he;
struct in_addr **addr_list;
int i;
char *ip = NULL;
printf("Search IP for this = %sn", URL);
if ((he = gethostbyname(URL)) == NULL) // get the host info
{
herror("gethostbyname");
ip = "No Such DNS";
return ip;
}
addr_list = (struct in_addr **)he->h_addr_list;
for (i = 0; addr_list[i] != NULL; i++) //Return the first one;
{
strcpy(ip, inet_ntoa(*addr_list[i]));
return ip;
}
}

预期:URL:www.google.com返回IP:173.194.72.106

这是一个愚蠢的问题。首先,URL最终不应该有n。第二,我把循环改为

char **he_ptr;
he_ptr = he->h_addr_list;
for (; *he_ptr != NULL; he_ptr++)
{
return inet_ntop(he->h_addrtype, *he_ptr, buff, sizeof(buff));
}

然后,不知怎么的,它起了作用。我不明白为什么它通过改变迭代的方式来工作

最新更新