c - getaddrinfo 不适用于网络地址

标签 c linux getaddrinfo

我有一个网络地址,例如 - 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;
    }

最佳答案

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

无论如何,从getaddrinfo的文档中:

Given node and service, which identify an Internet host and a service [...]

您输入的不是互联网主机,而是整个网络。你想要完成什么?

关于c - getaddrinfo 不适用于网络地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19503616/

相关文章:

linux - getaddrinfo() 是系统调用吗?

c - 是否有必要尝试连接到 getaddrinfo() 返回的所有地址?

ruby-on-rails-3.1 - .rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/net/http.rb:644:in `initialize': 没有这样的文件或目录 - getaddrinfo (Errno::ENOENT)

java - 查找数组中的对数,其中 A[i] * A[j] > A[i] + A[j]

C - BIO_get_fd() 总是无法获取有效的 FD

linux - CENTOS 7 上出现错误 : This site can’t be reached while installing laravel 5. 7

linux - 将同名文件夹移动到新目录 Linux, Ubuntu

linux - 查找目录/子目录的大小

javascript - selenium 使用 javascript 定位没有 id 或 name 的元素

C++ 指针目标返回错误值