首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当同一接口上绑定了多个IPv6地址时,如何为套接字设置特定IP

当同一接口上绑定了多个IPv6地址时,如何为套接字设置特定IP
EN

Stack Overflow用户
提问于 2017-08-02 17:39:31
回答 1查看 131关注 0票数 0

我目前正在将一个大程序从IPv4升级到IPv6。

在执行多个setsockopt的部分,我不知道如何为接口设置特定的源IP。

我这样做是为了设置接口的索引:

代码语言:javascript
复制
setsockopt(m_oClientSocket, IPPROTO_IPV6, IPV6_MULTICAST_IF, (char *) &uiInterfaceIndex,
            sizeof(uiInterfaceIndex)

如何选择IP?由内核原生的吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-02 18:40:48

如果您想使用特定的源地址,您可以使用bind()调用,就像使用IPv4一样。

如果想让内核决定使用哪个源地址,请不要使用bind()或绑定到未指定的地址。IPv4也是如此,但是您可能没有注意到,因为您以前没有使用过具有多个IPv4地址的系统。它们并不常见,但它们确实存在:)

IPv4的未指定地址是0.0.0.0,IPv6的未指定地址是::。在这两种情况下,都是“全零”地址。

如果您想了解内核如何选择地址的详细信息,请查看RFC6724。适用的规则有很多。一开始理解起来可能有点复杂,但其想法是内核应该选择一个能正常工作的地址。

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

https://stackoverflow.com/questions/45457126

复制
相关文章

相似问题

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