相关动态
如何让应用支持IPv6-only网络(附:搭建IPv6测试环境)
2024-12-29 20:03
App Store 自2016年6月1日开始实施全新策略,所有提交至苹果 App Store 的 iOS 应用申请必须要兼容面向硬件识别和网络路由的最新互联网协议:IPv6-only 标准。
 
一、IPv4与IPv6介绍
1,二者的区别
(1)IPv4 是互联网协议(Internet ProtocolIP)的第四版,也是第一个被广泛使用,目前运用最多的互联网技术协议。
IPv4 地址格式是这个样子:123.58.25.46
(2)IPv6 是 IPv4 的下一个版本 。IPv6 地址长度为 128 位,地址空间增加了 2^128-2^32 个,它在提高安全性方面相比前代有着较大的提升。此外,身份认证和隐私权也是 IPv6 的关键特性。
IPv6 地址格式是这个样子:2001:da8:215:4009:250:56ff:fe97:40c7 
 
2,什么是IPV6-Only支持
(1)目前当我们用 iOS 设备连接上 Wifi4G3G 等网络时,设备被分配的地址均是 IPV4 地址。但是随着运营商和企业逐渐部署 IPV6 DNS64/NAT64 网络之后,设备被分配的地址会变成 IPV6 的地址,而这些网络就是所谓的 IPV6-Only 网络,并且仍然可以通过此网络去获取 IPV4 地址提供的内容。 
(2)这里说的支持 IPV6-Only 网络,其实就是说让应用在 IPv6 DNS64/NAT64 网络环境下仍然能够正常运行。
(3)但由于我们目前的实际网络环境仍然是 IPV4 网络,所以应用需要能够同时保证 IPV4 和 IPV6 环境下的可用性。
 
二、如何让应用支持IPV6-Only
1,不要用IP地址
比如我们与服务器进行数据请求。要使用域名(如www.hangge.com),而不是使用硬编码的 IPv4地址(123.58.25.46)。
 
2,使用高级的网络API
这些高级的网络 API 包括:CFNetworkNSURLNSURLSessionNSURLRequestNSURLConnectionWebKit。这些高级的API不仅便于使用,而且很多底层的像适配 IPv6 的工作都已经帮我们做好了,我们可以放心使用。
而对于一些内部是封装使用高级API的第三方库:比如 ReachabilityAlamofire、最新版的 AFNetWorking。我们自然也不需要做什么,就可以兼容 IPv6
 
3,让底层的socket API同时支持IPV4和IPV6
如果我们应用中使用了长连接,那肯定会使用到底层 socket API。这就需要我们手动来判断当前网络来生成对应 IP 格式。
推荐使用谷歌的开源库 CocoaAsyncSocket。这个是支持 IPv6 的。
 
三、搭建一个IPv6测试环境
前面讲了这么多,不如在本地搭建一个 IPv6 网络测试环境。让 App 在这个环境下跑跑看,测试下有没有问题。
(1)首先你要有台通过网线上网的 Mac 电脑(注意是通过有线方式,不能是 WiFi 方式)
(2)打开“系统偏好设置”,按住“Option”键的同时点击“共享
 
(3)会发现在共享界面中多了个“创建 NAT64 网络”的复选框,勾选它。同时开启互联网共享功能。
(4)这样我们就使用 Mac 做了一个 NAT64 网络热点。
(5)最后用 iPhone 连接这个 Wi-Fi 热点,测试程序即可。注意:要把手机设置成飞行模式(先点飞行,再点WiFi)。防止手机使用蜂窝移动网络,如果有代理什么的也要去掉。
 
 
(6)这里写一个很简单的测试样例,通过IP地址来获取数据(202.108.22.5 是百度搜索首页的 IP

(7)使用 iOS8 系统的手机测试下,可以发现使用 ip 是无法请求到数据的(为什么用 iOS8 后面会说明)。
(8)如果改成通过域名的话,便可以获取到数据。
 
注意:为什么我手机在 IPv6 NAT64环境下,使用IP地址也能获取到数据?
你的手机肯定版本是 iOS9 的。如果是 iOS8.4 及以下版本肯定是不能正常访问。
苹果官方解释如下:
In iOS 9 and OS X 10.11 and later, NSURLSession and CFNetwork automatically synthesize IPv6 addresses from IPv4 literals locally on devices operating on DNS64/NAT64 networks. However, you should still work to rid your code of IP address literals.
大意就是虽然 iOS9 自动会将 IPV4 地址合成 IPV6 地址,让其在 DNS64/NAT64 网络上运行。但你仍然需要把这种写死的IP地址给去掉(比如改成域名)
    以上就是本篇文章【如何让应用支持IPv6-only网络(附:搭建IPv6测试环境)】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/news/14912.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 http://ww.kub2b.com/mobile/ , 查看更多   
最新文章
以“心”聚力,共铸电影辉煌
1905电影网专稿 4月10日至13日,电影频道节目中心在全国宣传干部学院(八大处校区)成功主办全国电影宣传骨干人才培训班(第一期
人人都需要一场1v4的恋爱
作者|谢明宏编辑|李春晖让人看得津津有味又醒世育人的爱情剧以几个“对手”为宜?这大概也和现实生活差不多,一个人千挑万选,两
一辆自动驾驶车需要几根天线?手机供应商「一辆自动驾驶车需要几根天线?」
未来,一辆车子究竟需要使用多少天线,才能具备自动驾驶的能力? 这可不是在开玩笑的!根据爱尔兰天线技术供应商——锐锋(Taogla
Use of Cookies and Other Tracking Technologies黑莓手机官网「Use of Cookies and Other Tracking Technologies」
Last Updated: January 1, 2023This notice describes the types of Cookies and Other Tracking Technologies (“Cookies”) th
nfc安卓手机怎么设置手机nfc功能在哪里「nfc安卓手机怎么设置」
NFC在安卓手机上的设置指南随着科技的不断进步,NFC(近场通讯)技术已经越来越普及。许多安卓手机都配备了NFC功能,它不仅能够
关税加码,普通投资者如何应对?
4月7日,股市经历剧烈波动,上证指数单日下跌7.34%,交易资金触及止损后恐慌性出逃,但更值得关注的是股指期货端出现历史极端行
2025年北京市全民健身“社区杯”骑行系列活动第四站举办
4月15日,2025年北京市全民健身社区杯骑行系列活动暨京彩骑行第四站在北京经济技术开发区亦庄新城滨河森林公园举行。本次活动以
小米一键上锁神器轻松加密,安全守护您的隐私加密手机「小米一键上锁神器轻松加密,安全守护您的隐私」
在互联网时代,信息安全已经成为每个人都需要关注的问题。尤其是在智能手机普及的今天,我们的个人信息、聊天记录、支付密码等隐
午盘:美股涨幅扩大 道指涨逾300点美股手机新浪网「午盘:美股涨幅扩大 道指涨逾300点」
  北京时间6日凌晨,美股周二午盘涨幅扩大,道指上涨逾300点,纳指上涨1.3%。市场密切关注美国总统大选选情,以及本周的财报与
Isomorphic Labs获6亿美元,加速 AI 药物研发
金融时报消息,总部位于英国伦敦的 Isomorphic Labs 宣布完成6 亿美元融资。本次由 Thrive Capital 领投,现有投资者谷歌的