我有一个网址,例如 - 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;
}
答案 0 :(得分:2)
至少在我的标题版本上,-2是EAI_NONAME
,“名称或服务未知”。从代码中不清楚变量name
中的内容是什么?字符串“192.168.74.0/24”?
无论如何,来自getaddrinfo
的文档:
给定节点和服务,用于标识Internet主机和服务[...]
您的输入无法识别互联网主机,而是整个网络。你想要完成什么?