Colección de citas famosas - Slogan de motivación - ¿IOS uiwebview es compatible con ipv6?

¿IOS uiwebview es compatible con ipv6?

1. ¿Necesito modificar el código?

1. Si la aplicación en línea solo usa nombres de dominio para acceder, no usa direcciones IP y no usa la API de socket subyacente, no es necesario modificar el código.

El acceso directo a direcciones IP se utiliza principalmente en entornos de prueba.

La mayoría de las aplicaciones utilizan: NSURLSession, NSURLConnection, UIWebView, WKWebView, CFNetwork. Por lo tanto, no es necesario modificar el código de red ni realizar ningún cambio en AFNetworking2.x y la accesibilidad.

Sin embargo, se recomienda actualizar AFNetworking a la última versión. Después de todo, NSURLConnection será eliminado tarde o temprano.

Si escribes en Swift, utiliza Alamofire.

2. La accesibilidad se puede escribir como un nombre de dominio en línea sin una dirección IP. También puede utilizar la accesibilidad de AFNetworking para determinar el estado de la conexión de red (es asíncrona y no requiere ingresar un nombre de dominio o IP).

La última versión de accesibilidad establece oficialmente que se puede utilizar en iOS8 y superior. Después de la prueba, se puede utilizar en sistemas iOS 7.0 y superiores.

3. Los sistemas iOS 9.0 y OS X 10.11 o superior admiten direcciones IP para acceder a la red en un entorno IPv6. Por lo tanto, si la máquina de prueba es un sistema iOS 9.0 o superior, se puede acceder a ella directamente a través de IP. Esto se debe a que NSURLSession y CFNetwork pueden sintetizar direcciones IPv4 en direcciones IPv6 después de iOS 9.0 (en un entorno de red DNS64/NAT64).

Los sistemas inferiores a iOS 9.0 informarán un error, independientemente de si se actualiza AFNetworking. Incluso si AFNetworking se actualiza a 3.x, se seguirán reportando errores como: error domain = nsurrrordomaincode =-1001.

Imágenes oficiales:

4. SDK compartido

Tanto el SDK de WeChat como el SDK de Sina Weibo tienen versiones actualizadas y afirman ser compatibles con IPv6.

Sin embargo, dado que WeChat en sí no es compatible con IPv6, incluso si el SDK se actualiza a la última versión y se comparte con WeChat, la aplicación en WeChat siempre mostrará que no puede conectarse a la red.

Las pruebas muestran que estos SDK compartidos no necesitan actualizarse para que sean compatibles con IPv6. (No está claro si WeChat debe actualizar el SDK después de admitir IPv6).

Umeng compartió las sugerencias del sitio web oficial para actualizar el SDK y recomienda personalmente la actualización. Si realmente no desea actualizar, debería estar bien.

Un poco aparte:

El SDK 5.2 lanzado por Umeng la semana pasada tuvo un error al compartir correo electrónico y SMS, y se les informó. Actualizaron ayer por la tarde.

En segundo lugar, las aplicaciones existentes son compatibles con IPv6:

1. La mayoría de ellas son compatibles con IPv6, como QQ, Taobao y Dianping.

1.1, porque la mayoría de las aplicaciones utilizan nombres de dominio en lugar de direcciones IP.

1.2 y no llama a la API del socket subyacente.

1.3, no se requiere búsqueda de DNS.

2. Un número muy reducido de aplicaciones no son compatibles con IPv6, como WeChat.

Tres. DNS64/NAT64

Flujo de trabajo de conversión de DNS64/NAT64:

1. Proporcione una red celular independiente con conexiones IPv4 e IPv6 y actualice la red IPv4 a IPv6.

La imagen de arriba es solo la situación ideal de actualización a IPv6, pero ahora la mayoría de ellos son servidores IPv4, por lo que algunos grandes fabricantes han comenzado a implementar la transición de DNS64/NAT64 para admitir IPv6.

2. Implementar red celular DNS64/NAT64 IPv6.

Cuando el cliente solicita el nombre de dominio de un sitio web, primero consultará a través del servidor DNS64 si hay una dirección IPv6 en el nombre de dominio. Si es así, se devolverá la dirección IPv6. Si no existe, busque la dirección IPv4 correspondiente al nombre de dominio y devuélvala.

El siguiente es un diagrama de flujo detallado:

3. Proceso de conversión de DNS64/NAT64:

DNS64/NAT64 puede convertir direcciones IPv4 a IPv6 y la dirección IPv6. resuelve en IPv4.

Conversión de dirección IPv4 a IPv6:

Cuando el cliente accede al nombre de dominio del sitio web, si el sitio web tiene solo una dirección IPv4: 56.111.211.22, se convierte a 16 hexadecimales. : 38 6F D3 16, estos son los dos últimos dígitos de IPv6:

Cuarto, cree un entorno IPv6

El sistema MAC es OS 10.11 y superior.

1. Ingrese a las "Preferencias del sistema" de la computadora MAC - "Mantenga presionada la tecla opción/alt -" y haga clic en "* * *Disfrutar".

2. Seleccione "Crear red NAT64" y luego abra el punto de acceso.

3. Después de conectar el teléfono móvil al hotspot, verifique el DNS de la red: XX: XX: XX: XX: XX, indicando que la red es IPv6.

La siguiente figura es un diagrama esquemático de la construcción de IPv6 de MAC:

Actualmente, una tarjeta de red utilizará dos direcciones al mismo tiempo, en el futuro, la tarjeta de red tendrá solo una; Dirección IPv6. No se puede acceder a los dos dispositivos directamente y requieren tecnología de transición DNS64/NAT64 para acceder entre sí.

5. Actualizar AFNetworking2. x a la última versión.

1. Reemplace AFHTTPRequestOperationManager con AFHTTPSessionManager.

2. Reemplace AFHTTPRequestOperation con: NSURLSessionTask.

3. Si se accede a través de IP, o permitir _addr().

inet_aton()

inet_lnaof()

inet_makeaddr()

inet_netof()

red inet( )

inet_ntoa()

inet_ntoa_r()

bindresvport()

getipv4sourcefilter()

setipv4sourcefilter( )

2. Si utiliza el siguiente código para manejar tipos IPv4, asegúrese de manejar también formularios IPv6:

IPv4

IPv6

AF_INET

AF_INET6

PF_NETWORK

PF_INET6

DIRECCIÓN DE ENTRADA DE ESTRUCTURA

DIRECCIÓN_ENTRADA DE ESTRUCTURA 6

Estructura sockaddr_in

Estructura sockaddr_in6

kDNSServiceProtocol_IPv4

kDNSServiceProtocol_IPv6