IPV6 来了!! 身为 Android 开发你将如何适配?

8,558 阅读2分钟

上几周我在接受的一个IPV4 已经用完的消息,需要适配IPV6 了,看到各种应用启动图下边显示已经支持IPV6, 身为一名移动开发,在思考如何算支持IPV6 呢?

网上对于 Android 支持 IPV6 的支持太少资料了,找了好多资料才解决这个问题,Very Happy,遂分享一下研究的过程。

研究结果如下

请求IPV6 接口(联通卡)

请求IPV4+IPV6 接口(联通卡)

IPV6 接口 Wifi 模式

研究缘由

IOS 在2016 已经强制必须支持 IPV6 , 但是现在随着互联网设备增加,IPV4 已经耗尽,Android 需要支持,建议用 Mac 模拟IPV6 Only 的信号,IOS app 能正常访问网络,但是 Android 访问的 居然链接不上,然后用支付宝、知乎等已经支持 IPV6 的应用,发现也不能正常访问,然后百思不得其解。

带着问题去研究

  1. IPV6 的网络接口(因为 IPV6 域名解析模式 是 AAAA 模式,IPV4 的是 A 模式 )
  2. IPV6 的运营商或者Wifi 支持(利用Mac 放出的Wifi 不能支持,最终发现 联通sim 卡已经可以支持IPV6 )
  3. 支持网络请求的网络框架(我们应用采用的是 okhttp 网络框架,支持 IPV4+IPV6 模式)
  4. IPV4+IPV6 模式是否兼容,是否可以选择只访问IPV6 或者 IPV4 优先模式

然后阅读对应IPV6 的 wiki 和相关文章,发现需要 DHCPV6 IP 模式,但是我的一加6 没有这种模式,怀疑是否厂商不支持这种模式,是否就卡在硬件这个方向不能搞下去,最终一步步才测试出是支持IPV6。

参考文章

  1. mac 搭建模拟IPV6环境书
  2. IPv6 维基百科,自由的百科全书
  3. IPv6入门教程