Wdrażam moją aplikację, aby była kompatybilna z sieciami tylko IPv6. Czy jest jakiś sposób na obsługę zakodowanych literałów adresu IPv4 (takich jak 172.1.2.3) w iOS8.x?
Zgodnie z dokumentacja jabłek,
- W iOS 9 i nowszych, NSURLSession i CFNetwork automatycznie syntetyzują adresy IPv6 z literałów IPv4 lokalnie na urządzeniach działających w sieciach DNS64 / NAT64.
- Dodano możliwość syntezy adresów IPv6 do getaddrinfo () w iOS 9.2.
Ale nie ma wzmianki o tym, jak obsługiwać literały adresowe iOS8.x.
Odpowiedzi:
1 dla odpowiedzi № 1Poprawny. Użytkownicy korzystający ze starych wersji iOS w nowoczesnych sieciach łączących się ze starszymi usługami będą mieli problemy z łącznością. Najlepsze rozwiązania to:
- Nigdy nie używaj zakodowanych adresów w kodzie
- Istnieje wiele doskonałych powodów, po prostu nie używaj sztywnych adresów i używaj DNS
- Jeśli korzystasz z DNS, dostawca NAT64 zajmie się tłumaczeniem
- Upewnij się, że twoje serwery są osiągalne zarówno przez IPv4, jak i IPv6
- To znacznie poprawia osiągalność twojej usługi
- To sprawia, że NAT64 jest niepotrzebny, można używać natywnego IPv6 bez żadnych włamań
Jeśli chcesz uruchomić dobrą usługę i napisać dobrą aplikację, wykonaj obie powyższe czynności.