2016-05-24 1 views
2

Я использую приложение для совместимости с сетями только для IPv6. Есть ли способ обрабатывать жестко закодированные литералы адреса IPv4 (например, 172.1.2.3) в iOS8.x?Как обращаться с адресными литералами IPv4 для сети только для IPv6 в iOS8

В соответствии с apple documentation,

- В прошивке 9, а затем, NSURLSession и CFNetwork автоматически синтезируют IPv6-адрес из IPv4 литералов локально на устройствах, работающих на DNS64/NAT64 сетей.

- Способность синтезировать адреса IPv6 была добавлена ​​в getaddrinfo() в iOS 9.2.

Но не упоминается, как обрабатывать адресные литералы для iOS8.x.

ответ

1

Исправить. Пользователи, использующие старые версии iOS в современных сетях, подключающихся к устаревшим услугам, будут иметь проблемы с подключением. Лучшие решения являются:

  • Никогда не используйте жестко закодированные адреса в коде
    • Есть много прекрасных причин, просто не трудно кода адреса и использовать DNS
    • Если вы используете DNS то провайдер NAT64 будет обрабатывать перевод вы
  • Убедитесь, что ваши серверы достижимы через IPv4, так и IPv6
    • Это делает достижимость вашей службы гораздо лучше
    • Это делает NAT64 ненужным, использование может просто использовать родную IPv6 без каких-либо хаков

Если вы хотите запустить хорошую службу и написать хорошее приложение , выполните оба вышеуказанных действия.

+0

Некоторые из фреймворков (таких как XMPP) имеют дело с жестко закодированными литералами IP-адреса. Используя инфраструктуру XMPP, когда я подключаюсь к клиенту XMPP для XMPP-сервера, мне нужно использовать жестко закодированные литералы. Эта проблема происходит под IPv6 n/w для iOS 8.x. –

+0

В этом случае пользователям iOS 8 повезет –

+0

Предполагается, что любой оператор или поставщик услуг Интернета, который решает развернуть сеть только для IPv6, проинформирует своих пользователей о необходимости использования iOS 9.2+. – user102008