码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发之苹果应用6.1日起需兼容IPv6,那么作为开发者我们需要做些什么呢?【科普IPV6】

时间:2016-05-12 13:36:48      阅读:3660      评论:0      收藏:0      [点我收藏+]

标签:

   我相信现在很多的iOS开发者都知道苹果要求我们提交到App Store的应用必须支持IPv6。

          1.提到IPV6相关。 那这个直接就联想到就是关于我们App中网络部的一些内容,是否要进行相应的改变。 
          首先,解释下什么是ipv6?

          IPv6是下一代互联网的协议,它的提出最初是因为随着互联网的迅速发展,IPv4定义的有限地址空间将被耗尽,地址空间的不足必将妨碍互联网的进一步发展。通俗的说就是,我们的网络ip地址不够用了, 我们每台电脑上internet都需要一个身份证明,就是说的IP地址, ipv4的可使用地址为 2的32次方个地址,而ipv6可使用的ip地址为 2的128次方, 哈哈,妈妈再也不用担心我们ip地址不够用啦,当然ipv6的好处远不止只是地址的增加。还有以下好处:

     更小的路由表

         IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。

  增强的组播(Multicast)支持以及对流的支持(Flow-control)

  这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS)控制提供了良好的网络平台。

  加入了对自动配置(Auto-configuration)的支持

  这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。

  更高的安全性

  在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,这极大的增强了网络安全


通过上面的了解,大家肯定明白苹果为什么要求我们的app要支持ipv6了把,并且态度强硬。  苹果这是为了以后发展上不受ipv的影响,所以提前快刀斩乱麻。

废话说了很多了: 参照:http://www.jianshu.com/p/69ed4489762c 

进入正文:  

        我们用高级的API完全能够实现我们的需求,而且高级API封装的很便于使用,很多底层的像适配IPv6的工作都已经帮我们做好了。而用底层API会有大量的工作要我们自己来做,更容易产生bug。但你如果确实需要用底层的POSIX socket API。

技术分享

这个方法在著名的Reachability类中是用到了的,而我们常用的网络库AFNetworking里面有Reachability。所以用到的同学得好好查一下了,大家没事可以去看看AFnetworking/issues,然后也可以问一问,暂时貌似是还没有解决这个问题点击打开链接 issues,


检查不兼容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类型也需要做处理

具体的对应字段为: 大家一定要查一查

技术分享


最后一步:那就是请尝试搭建一个ipv6的环境,去测试整个项目,具体的搭建ipv6环境的步骤如下:

本地搭建IPv6测试环境

最后我们来搭一个IPv6的测试环境吧,你所需要的就是一台用非Wi-Fi的方式上网的Mac电脑。

我们的要做的其实就是用Mac做一个热点,然后用iPhone连接这个Wi-Fi,听起来很容易,我相信大家在公司就是这么干的吧。

区别是这次我们产生的是一个本地的IPv6 DNS64/NAT64网络,这项功能是OS X 10.11新加的。和我们以前开启热点方式不一样的地方在于,我们在“System Preferences”界面选中“Sharing”的同时,要按住“Option”键。

技术分享
System Preferences

之后在“Sharing”界面中,我们会看到和之前不一样的地方,就是红框所标的地方,多了一个叫“Create NAT64 Network”的选框,选中它。

技术分享
Sharing

之后就是按照正常的创建热点的流程走完就行了。

现在我们用iPhone连接上这个刚创建好的热点就可以测试了,注意此时要把iPhone设成飞行模式,以保证只用Wi-Fi上网。


总结:

    1.我相信陆陆续续肯定会有更多的开发者在兼容ipv6的过程中会出现各种各样的问题,到时候再去论坛,技术群中再探索把。

iOS开发之苹果应用6.1日起需兼容IPv6,那么作为开发者我们需要做些什么呢?【科普IPV6】

标签:

原文地址:http://blog.csdn.net/zhonggaorong/article/details/51362068

(0)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!