如何测试iOS应用程序是否支持IPv6?

Alt*_*nov 16 ipv6 ios swift

我有2015年和2014年建立的应用程序.如何针对IPv6测试它们?
如果我的应用不支持IPv6,我该怎么办?

我的应用程序正在使用AFNetworking和Alamofire.我主要连接到域(例如api.example.com/v1/...).只有1个应用程序使用IP :(例如:12.12.12.12:3000/api/v1/...).

websockets有问题吗?(WS://12.12.12.12:8080/API/....).

dga*_*ood 16

如果不了解您的应用程序,很难肯定地说.特别:

  • 你是直接使用IP地址吗?
  • 您是否允许用户以URL以外的其他形式直接输入?
  • 您是否使用Apple基于NSURL的API以外的API直接建立网络连接?
  • 你是出于任何原因自己明确地进行DNS查找吗?

如果对这四个问题的答案都是"否",那么您无需进行任何更改即可支持IPv6.

直接使用IP地址时,如果用户需要能够输入这些地址,您可能还需要添加代码以允许用户输入IPv6地址,并适当地解决它们.

如果您的代码自己执行DNS解析,然后使用IP地址执行某些操作,则必须更新它以处理IP地址并将其正确传递到您使用IP地址调用的任何API.

硬编码的IP地址是个问题.您需要为这些IP地址创建主机名.这样,设备的DNS解析器可以做各种魔术来创建虚假的IPv6地址,从而导致路由器在某处将网络地址转换为真实的IPv4地址.

据我所知,AFNetworking 3.0及更高版本应该没问题,最近版本的AlamoFire也应如此.确保你是最新的.

  • 根据Apple的惯例,需要14页来详细解释测试程序,但未能包括顶部的tl; dr,它会告诉99%的开发人员他们不需要阅读14页的指南第一名.:-) (8认同)