0

我有一个网络地址,例如 - 192.168.74.0/24。尝试使用 getaddrinfo 进行网络地址转换,似乎不起作用。这里的名字是 192.168.74.0/24。getaddrindo 的返回值为 -2。适用于没有前缀的 ipv4 地址。

static const struct addrinfo hint = {
            .ai_family = AF_UNSPEC,
            .ai_flags = AI_NUMERICHOST
    };
    struct addrinfo *ai;
    int ret;

    ret = getaddrinfo(name, NULL, &hint, &ai);
    if (ret) {
            printf("cannot parse '%s'", name);
            return false;
    }
4

1 回答 1

2

至少在我的标题版本中,-2 是EAI_NONAME“名称或服务未知”。从您的代码中不清楚变量中有name什么?字符串“192.168.74.0/24”?

无论如何,从以下文档中getaddrinfo

给定节点和服务,它们标识 Internet 主机和服务 [...]

您输入的不是互联网主机,而是整个网络。你想达到什么目的?

于 2013-10-21T20:35:42.677 回答