一、什么是IPV6
首先IPV6,是对IPV4地址空间的扩充。目前当我们用iOS设备连接上Wifi、4G、3G等网络时,设备被分配的地址均是IPV4地址,但是随着运营商和企业逐渐部署IPV6 DNS64/NAT64网络之后,设备被分配的地址会变成IPV6的地址,而这些网络就是所谓的IPV6-Only网络,并且仍然可以通过此网络去获取IPV4地址提供的内容。客户端向服务器端请求域名解析,首先通过DNS64 Server查询IPv6的地址,如果查询不到,再向DNS Server查询IPv4地址,通过DNS64 Server合成一个IPV6的地址,最终将一个IPV6的地址返回给客户端。
二、检查不兼容IPv6的代码
搜一下工程里有没有下面的这些API,这些都是只针对IPv4做处理的,有的话就删了。
inet_addr()
inet_aton()
inet_lnaof()
inet_makeaddr()
inet_netof()
inet_network()
inet_ntoa()
inet_ntoa_r()
bindresvport()
getipv4sourcefilter()
setipv4sourcefilter()
如果用到了下面左边的这些IPv4的类型,那么它们相应的IPv6类型也需要做处理
IPV4
IPV6
AF_INET
AF_INET6
PE_INET
PE_INET6
struct in_addr
Struct in_addr6
struct sockadd_in
struct sockaddr_in6
kDNSServiceProtocol_IPv4
kDNSServiceProtocol_IPv6
IPv4--IPv6
三、本地搭建IPv6测试环境
需要的就是一台用非Wi-Fi的方式上网的Mac电脑,产生的是一个本地的IPv6 DNS64/NAT64网络,这项功能是OS X 10.11新加的。
在“System Preferences”界面选中“Sharing”的同时,要按住“Option”键。之后在“Sharing”界面中,我们会看到和之前不一样的地方,就是红框所标的地方,多了一个叫“Create NAT64 Network”的选框,选中它。
之后就是按照正常的创建热点的流程走完就行了。
现在我们用iPhone连接上这个刚创建好的热点就可以测试了,注意此时要把iPhone设成飞行模式,以保证只用Wi-Fi上网。
四、解决办法
1.升级AFN3.0+
2.升级ShareSDK3.3+
搭建IPv6的环境
参考文章:http://jingyan.baidu.com/article/0bc808fc56a9bf1bd585b96d.html
网友评论