我有一个网络地址,例如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;
}
发布于 2013-10-22 04:35:43
至少在我的报头版本中,-2是EAI_NONAME
,“名称或服务未知”。从您的代码中看不出变量name
中是什么?字符串"192.168.74.0/24"?
无论如何,从getaddrinfo
的文档中
给定的节点和服务,用于标识互联网主机和服务...
您的输入不是标识internet主机,而是标识整个网络。你想要达到什么目的?
https://stackoverflow.com/questions/19503616
复制相似问题