WeMobileDev/article

最新的Mac10.12系统的NAT64热点问题

Closed this issue · 3 comments

iphone手机连接Mac系统10.12之前的版本 NAT64热点,用getaddrinfo转换出来的v6 IP 是带了NAT64/DNS64 64:ff9b::/96前缀,但最新的10.12用这个函数转换的ip前缀是2001::的,你不是说这个是隧道通道的么,而且这个前缀好像除了2001固定,后面的都不固定吧,这种情况要如何处理?

TCP 没有问题,使用 getaddrinfo 转换 IPv4 地址,直接 connect 就可以了。但是我发现 UDP 无法发送成功,返回 -1,errno 为 1 (Operation not permitted)。怎么解?

@vintonliu
建议检查下是否搞错了. 实验了下, 用getaddrinfo转换的v6 ip前缀没错, 还是64开头. 2001是否手机接上了这个NAT64 WIFI后的手机上的本机IP.

另, iphone接上这个转换后的WIFI后, 手机的详细中并看不到ipv6的地址, 只能看到DNS中有个显示. 不知道苹果怎么想的, 一面强推ipv6, 一面自己的手机上都看不到具体信息.

@wangyoucao577 应该没搞错,试过很多次,确实转换有不一样。后来只能去掉64这个前缀限制来使用。