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

标签 ios swift ipv6

<分区>

我有 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/....)。

最佳答案

在不了解您的应用程序的情况下很难下定论。具体来说:

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

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

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

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

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

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

关于ios - 如何测试 iOS 应用程序是否支持 IPv6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37096725/

相关文章:

objective-c - 测量 iOS 应用程序启动性能的规范方法?

ios - 如何从 Xcode 中的 DevPortal 注销

带有 where 子句的 Swift 数组扩展不适用于子协议(protocol)

ios - UIGraphicsGetImageFromCurrentImageContext() 返回 nil

oracle - 在 Oracle 中表示 IPv4/IPv6 地址

xamarin - Xamarin iOS应用程序被App Store拒绝,因为它不能在仅IPv6的环境中使用

iphone - 寻找资源来学习 "ExternalAccessory"框架 (iOS)

ios - 将 Base64string 转换为字符串时出现问题

json - 键嵌套数组和/或字典的 Swift JSON 对象

c++ - sockaddr_in6 没有声明?