如何确保你的 APP 支持 IPv6

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介:

由于移动互联网服务商拥有的 IPv4 地址即将耗尽,他们只能给出 IPv6地址或者电信级 NATted 的 IPv4 地址,Apple 在今年五月四日宣布,从六月1日起,所有提交至 AppStore 的应用必须支持 IPv6 协议。同时,在 Google IPv6 使用统计 中可以看出,当前 IPv6 的采用率已经接近 13%。所以,使你的 App 支持 IPv6变得越来越重要,尤其是移动 App。IPv6 已经开始出现在 EMail Headers、SIP、DNS 等地方,你的 App 需要能够解析这些在 URL、头部字段和数据中的 IPv6 地址。至少得保证 App 第一次遇到这些 128 位或者更长的字符串时不会崩溃。

App支持 IPv6 并不意味着它仅仅支持 IPv6。相当大一部分网络依然使用 IPv4 并且将持续很长一段时间,你得确保你的 App 依然支持 IPv4。同时,一些互联网服务商早已耗尽 IPv4 地址,从而选择将电信级 NATted 的 IPv4 地址分配给客户。而有的干脆选择仅部署 IPv6。这部分客户连接到 IPv4 网络的唯一方法是通过 6to4 隧道进行数据传输,它的原理是使用 IPv6 作为 IPv4 的传输层。基于以上原因,当前最好的方式是支持双协议栈。

在 Web 服务应用中,常常会使用正则表达式来识别 IPv4,这些表达式遇到 IPv6 将会失效。事实上,由于 IPv6 地址有许多不同的格式,不推荐使用正则式来识别 IPv6。可以尝试使用一些开源库来做这部分工作。另外,应检查一下存放 IP 地址的数据库字段是否已经扩展到 128 位,确保你的应用部署到了支持双协议栈的操作系统中,确保你使用的库也支持 IPv6,否则可能出现不必要的错误。总而言之,之前所有涉及 IP 的地方都需要检查以确保其能够支持 IPv6。

移动 App 经常使用 RESTful URL 与 服务端 App 进行通信,而服务端 App 可能使用 URL 与 LDAP 服务数据库或其他 RESTful 服务通信。由于 IPv6 地址以 ":" 为分隔符,而 host和端口也是同样的分隔符,所以在 URLs 中使用 IPv6 需要使用方括号加以区分:https://[2111:500:4:13::128]:443/

在 IPv4 网络中,DNS 记录可以将域名翻译成 IPv4 地址,这个地址称之为 A 记录。同样在 IPv6 网络中,返回的 IPv6 地址的长度是 IPv4 地址的四倍,称之为 AAAA 记录。在进行 DNS 查询时,一个单独的域名可以同时拥有一个 A 记录和一个 AAAA 记录,所以域名可以被翻译为一个 IPv4 地址和一个 IPv6 地址。如果你同时获得了一个 A 记录和一个 AAAA 记录,你需要同时使用两个地址进行访问,并选取访问速度更快的那个地址。另外,当一些网络服务使用 IPv6 时,IP 地理位置系统需要及时更新其数据库。

当一些客户端程序使用 IP socket 进行跨进程通信和一些服务端程序访问同一个主机中的其他服务时,就要使用到被称为环回地址的 IP 地址,通常是 localhost。在 IPv4 中,localhost 可以为 127.0.0.0 至 127.255.255.255 之间的任意地址。而在 IPv6中,有且仅有一个环回地址 ::1。所以最好使用 localhost 当做环回地址而不是特定的 IP 地址。

测试,当一切条件完备以后,还需要一些测试。如果你是公共网站,可以使用类似于 internet.nl 的开放工具进行 IPv6 访问测试。

文章转载自 开源中国社区[http://www.oschina.net]

相关文章
|
2月前
|
网络协议 调度 vr&ar
面向 IPv6 的淘宝 App 网络技术与体验升级
面向 IPv6 的淘宝 App 网络技术与体验升级
|
传感器 运维 网络协议
面向 IPv6 的淘宝 App 网络技术与体验升级
面向 IPv6 的淘宝 App 网络技术与体验升级
7772 0
《优酷APP全量支持“暗黑模式” 设计与技术完整总结》电子版地址
优酷APP全量支持“暗黑模式” 设计与技术完整总结
191 0
《优酷APP全量支持“暗黑模式” 设计与技术完整总结》电子版地址
|
Go vr&ar 开发者
你离3D虚拟办公只差一个App:Mesh支持多用户MR体验、云端渲染
微软周二宣布推出了Mesh服务,该服务旨在打造能让人们通过AR/VR技术进行协作的应用。Mesh平台利用Azure云平台来让远程参与者通过HoloLens 2和其他设备共享协作体验,并首次通过Hololens 2展示了「Pokemon Go」头戴式增强现实概念原型。
168 0
你离3D虚拟办公只差一个App:Mesh支持多用户MR体验、云端渲染
|
iOS开发 芯片 MacOS
生态已经部署?iOS App已支持macOS 11或更高版本
预计首个适配Apple Silicon的系统macOS Big Sur也将在发布会后推送,而现在苹果似乎已经为新系统准备好了生态。
135 0
生态已经部署?iOS App已支持macOS 11或更高版本
|
移动开发 监控 Android开发
注意啦!还没有支持64位系统的App开发者,务必在12月底前完成这件事!
近日,国内五大应用商店宣布,将共同推进国内安卓生态对64位架构的升级支持,目的是更好提升APP性能体验并降低功耗。友盟+ U-APM数据显示:市场上64位和32位的设备占比为65%和35%,32位设备发生崩溃现象次数是64位设备的4.8倍,无论从用户体验上还是设备占比来看,应用支持64位系统必定是大势所趋。
注意啦!还没有支持64位系统的App开发者,务必在12月底前完成这件事!
|
人工智能 自动驾驶 算法
思否技术周刊 | 微软联手苹果开发手柄、AI 助力嫦娥五号登月、Win10 2021 年版将支持运行安卓 App
思否技术周刊 | 微软联手苹果开发手柄、AI 助力嫦娥五号登月、Win10 2021 年版将支持运行安卓 App
思否技术周刊 | 微软联手苹果开发手柄、AI 助力嫦娥五号登月、Win10 2021 年版将支持运行安卓 App
|
iOS开发
XCODE中,修改苹果APP支持哪些设备
XCODE中,修改苹果APP支持哪些设备
393 0
|
XML 开发框架 前端开发
编程实践选型通史:平坦无架构APP开发支持与充分batteryincluded的微实践设施
关键字:自带paas语言系统,自带组件,自带用户工具语言系统,一元下的多元,初学者第一门实践语言选型
319 0
编程实践选型通史:平坦无架构APP开发支持与充分batteryincluded的微实践设施