Как тестировать приложение iOS поддерживает 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/....)

Ответы

Ответ 1

Трудно сказать с уверенностью, не зная больше о вашем приложении. В частности:

  • Вы используете IP-адреса напрямую?
  • Вы разрешаете пользователям вводить их непосредственно в какой-либо форме, кроме URL-адреса?
  • Вы делаете сетевые подключения напрямую с помощью API, отличных от API на основе Apple NSURL?
  • Вы явно выполняете поиск DNS по какой-либо причине?

Если ответ на все эти четыре вопроса "нет", вам не нужно вносить какие-либо изменения в поддержку IPv6.

При непосредственном использовании IP-адресов, если пользователь должен иметь возможность вводить эти адреса, вы, вероятно, захотите добавить код, позволяющий пользователю также вводить адреса IPv6 и соответствующим образом разрешать их.

Если ваш код сам выполняет DNS-разрешение, а затем выполняет что-то с IP-адресами, он должен быть обновлен для обработки IP-адресов и для правильного их передачи любому API-интерфейсу, который вы вызываете с IP-адресами.

Жестко закодированные IP-адреса являются проблемой. Вам нужно создать имя хоста для этих IP-адресов. Таким образом, DNS-преобразователь устройства может создавать различные магии для создания поддельного IPv6-адреса, который приводит к трансляции сетевого адреса на реальный IPv4-адрес каким-либо маршрутизатором.

Насколько мне известно, AFNetworking 3.0 и более поздние должны быть точными, как и недавние версии AlamoFire. Убедитесь, что вы обновлены.