IPv4基础上支持IPv6遇到的问题,帮忙!!

发布于 2022-07-17 18:48:30 字数 44 浏览 10 评论 7

想在现有代码的基础上将支持Ipv6,
INADDR_ANY如何转换为Ipv6

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

吾性傲以野 2022-07-25 01:08:13

这样写应该可以:

        struct sockaddr_in6 sa;
        struct in6_addr any_addr = IN6ADDR_ANY_INIT;
        sa.sin6_addr = any_addr;

北风几吹夏 2022-07-25 00:56:31

非常感谢你

伴我心暖 2022-07-24 14:58:26

刚才试了一下
"::"表示IPv6的任意地址,
你写的没有问题

寒尘 2022-07-23 12:00:10

分常感谢!!

昨天已经用了涵数inet_pton
inet_pton(AF_INET6,"::",&(caddr.sin6_addr.s6_addr));
也编译过了,不知道是否有什么地方没有注意到,请帮忙!

Saygoodbye 2022-07-23 11:08:07

s6_addr是个数组,没法用htonl来转换
我的部分相关代码:
        struct sockaddr_in6     addr6;          //IPv6地址结构
        socklen_t               addrlen;        //地址信息长度
        int                     rc;

        //初始化结构
        addrlen = sizeof(struct sockaddr_in6);
        bzero(&addr6, addrlen);

        //地址翻译
        rc = inet_pton(AF_INET6, ip6_addr, &(addr6.sin6_addr));//ip6_addr是字符串指针,作为函数参数传进来的
        if (0 >= rc) return(-1);
        addr6.sin6_family = AF_INET6;
        addr6.sin6_port = htons(server_port);

南巷近海 2022-07-20 20:50:38

谢谢您的回复,现将代码附上(之前是在宿舍,没记住代码):

之前(IPv4)的代码:

        caddr.sin_family = AF_INET;
        caddr.sin_addr.s_addr = htonl(INADDR_ANY);
        caddr.sin_port = htons(0);
改后(IPv6)的代码:
        caddr.sin6_family = AF_INET6;
        caddr.sin6_addr.s6_addr = htonl(INADDR_ANY);
        caddr.sin6_port = htons(0);

我搜索了INADDR_ANY的定义:
/* Address to accept any incoming messages.  */
#define        INADDR_ANY                ((in_addr_t) 0x00000000)

in_addr_t的定义如下:

/* Internet address.  */
typedef uint32_t in_addr_t;

而uint32_t 的定义如下:
typedef unsigned int uint32_t;

请问在IPv6里如何修改"INADDR_ANY", 因为htonl这个涵数是将16进制转换为网络地址(应该是IPv4地址),是否要换个涵数来支持IPv6?

[ 本帖最后由 sophia99 于 2006-7-10 16:10 编辑 ]

街角迷惘 2022-07-19 09:29:28

INADDR_ANY在IPv4是个整数
在IPv6是个结构

lo用"::1"(这个我确定)
任意地址应该是":::"(我没有试验)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文