首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法绑定到IPv6地址

无法绑定到IPv6地址
EN

Stack Overflow用户
提问于 2010-03-27 11:49:24
回答 1查看 3.1K关注 0票数 2

在我的Ubuntu业力系统上,我面临着一个奇怪的问题。

当我用AI_PASSIVE和AF_UNSPEC调用getaddrinfo()时,对于一个空主机和UDP 12000端口来获得一个可绑定的地址,我只返回一个IPv4结果AF_UNSPEC)。

如果更改调用并指定AF_INET6而不是AF_UNSPEC,那么getaddrinfo()将返回“名称或服务未知”。

我不应该得到:12000吗?

如果我将主机设置为::1,也会发生同样的情况。

当我为主机"localhost“和UDP 12000端口调用getaddrinfo()而不带127.0.0.1:12000. (以获得”可连接“地址)时,首先得到:1:12000,然后是

显然,我的系统已经准备好了IPv6 (我可以同时访问IPv4和IPv6地址,以及DNS解析)。但是,为什么我不能将getaddrinfo()绑定到一个IPv6地址呢?

你们知道会出什么事吗?

我的操作系统是Ubuntu业力,新安装没有任何网络调整。

谢谢。

如果你不知道,但仍然想帮我,你可以得到这个样本程序或输入:

wget http://people.apache.org/~jorton/gai.c

给我的结果是:

$ ./gai -ap空12000

我的结果是:

$ ./gai -ap空12000 getaddrinfo(NULL,"12000",{.family=AF_UNSPEC,.hints=0|AI_ADDRCONFIG|AI_PASSIVE}) = 0: family= 2,proto= 6 inet4: addr=0.0.0.0,port=12000

在这里您可以看到,我只有一个IPv4结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-27 12:39:59

这种情况发生在使用eglibc:德比安的新系统上。

显然,有一个错误要求您将至少一个有效的IPv6地址设置到您的网络接口之一(回送不算)。

在我做完这些之后:

$sudoIP-6addr 2001:660:4701:1001:1 dev eth0

我有:

$ ./gai -ap空12000 getaddrinfo(NULL,"12000",{.family=AF_UNSPEC,.hints=0|AI_ADDRCONFIG|AI_PASSIVE}) = 0: family= 2,proto= 6 inet4: addr=0.0.0.0,port=12000 family=10,proto= 6 inet6: addr=::,port=12000,flowinfo=0

我希望这能帮上忙。

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

https://stackoverflow.com/questions/2529149

复制
相关文章

相似问题

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