首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gethostbyname未知主机

gethostbyname未知主机
EN

Stack Overflow用户
提问于 2021-06-24 13:24:57
回答 1查看 87关注 0票数 0

我试图从URL获取IP地址,但gethostbyname总是显示Unknown host。希望有人能指出我的缺点。以下是我的代码

代码语言:javascript
复制
char *handleAddress(char *URL)
{
    struct hostent *he;
    struct in_addr **addr_list;
    int i;
    char *ip = NULL;
    printf("Search IP for this = %s\n", 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

EN

回答 1

Stack Overflow用户

发布于 2021-07-14 17:48:19

这是一个愚蠢的问题。首先,URL最终不应该有\n。其次,我将循环更改为

代码语言:javascript
复制
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));
}

然后,不知何故,它成功了。我不知道为什么它会通过改变迭代的方式来工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68110052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档