首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >getaddrinfo()返回ipv4和ipv6,而本地系统只有ipv4

getaddrinfo()返回ipv4和ipv6,而本地系统只有ipv4
EN

Unix & Linux用户
提问于 2021-07-15 02:01:16
回答 1查看 647关注 0票数 0

我使用getaddrinfo(3)从一个同时支持ipv4和ipv6的域获取列表ip地址,但是本地系统只支持ipv4,或者支持ipv4 & ipv6,正如我所预期的那样,如果系统支持ipv4和ipv6 getaddrinfo(3)将同时查询ipv4 & ipv6,如果系统支持ipv4,getaddrinfo(3)将只查询ipv4。我尝试将ai_flags设置为AI_ADDRCONFIG,但它仍然查询ipv4和ipv6,而系统只支持ipv4。我该怎么办?

这是我的代码:

代码语言:javascript
运行
复制
struct addrinfo hint, *res = NULL, *p = NULL;
int err;
ACE_OS::memset(&hint, 0, sizeof hint);
hint.ai_family = AF_UNSPEC;
hint.ai_socktype = SOCK_STREAM;
hint.ai_flags = AI_ADDRCONFIG;
err = ACE_OS::getaddrinfo(hostname.c_str() ,"http", &hint, &res);
EN

回答 1

Unix & Linux用户

发布于 2021-07-15 11:39:31

如果您知道您只需要IPv4,请将ai_family设置为AF_INET

使用AF_INET表示IPv4,AF_INET6表示IPv6。

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

https://unix.stackexchange.com/questions/658450

复制
相关文章

相似问题

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