¿Cuál es el método para obtener la dirección IP de un dispositivo iOS que Apple aprueba?

Por mi respuesta, supongo que eres un desarrollador de iOS que escribe una aplicación y quieres que tu aplicación tenga la dirección IP del teléfono.

Un iPhone puede tener dos o más direcciones IP. Uno para wifi, uno para datos celulares y uno para cada red VPN configurada. Así que querrás averiguar cuál estás buscando.

No hay API públicas de iOS que conozca para obtener esto, pero iOS está escrito sobre UNIX. Hay API de UNIX que puede usar. Puede usar “getifaddrs ()” y recorrer la lista de interfaces (el “si” en el nombre) para la dirección IP que está buscando. Esta es una interfaz C directa, por lo que requerirá algo de trabajo a nivel UNIX. No tengo una muestra a mano o la publicaría.

Apple tiene acceso útil limitado a métodos similares (por ejemplo, para la dirección MAC) y podría hacer lo mismo aquí. Pero a medida que su IP cambia en función de la red a la que está conectado, creo que todavía es viable, ya que no se puede usar como un método de identificación único.

Tenga en cuenta que es probable que obtenga una combinación de direcciones IPv4 e IPv6. Los sistemas de datos celulares a menudo utilizan IPv6 en estos días. Básicamente estamos fuera de las direcciones IPv4, por lo que ahora solo se usan detrás de firewalls.

Las direcciones IP son proporcionadas por la red, no por Apple o el dispositivo. Se pueden configurar las direcciones IP (IP estática), pero aún tiene que ser compatible con la red y Apple no la proporciona. Entonces, la única forma de obtener la dirección IP es mirar el enrutador o el dispositivo en sí. Esa dirección IP cambiará tan pronto como se mude a otra red que le dará su propia dirección IP.