IPify para Xojo

IPify es un servicio web, API, que promete estar siempre ahí para atender nuestras consultas e indicarnos cual es la dirección pública (o externa) de nuestra conexión a Internet. De hecho, tan escueta y necesaria información puede ser devuelta como texto, en formato JSON o bien en formato XML, a elegir.

Descarga la clase IPify para tus proyectos Multiplataforma de Xojo desde GitHub, desde aquí!

Son muchas las ocasiones en las que precisamos saber cual es la dirección IP pública, o externa, empleada por nuestra aplicación con diferentes propósitos; y si bien existen múltiples sitios web que nos proporcionan dicha información, lo cierto es que no he encontrado nada más rápido y simple que IPify, además de su notable disponibilidad al estar publicada en Heroku. Esto significa que incluso si se cae medio Internet el servicio continuará estando disponible.

Sin ir más lejos, recientemente he tenido que implementar para un cliente este dato, de modo que pueda saber en cualquier momento la dirección IP que se está utilizando.

Y si bien la forma más sencilla de utilizar IPify es mediante el siguiente código:

Dim request as New HTTPSecureSocket
Dim s as String = request.get("https://api.ipify.org",10)

He creado una clase para Xojo que además de esa información puntual también proporcione otros datos que podemos necesitar, como por ejemplo comprobar si la dirección IP que teníamos ha cambiado… o establecer un periodo de tiempo (indicado en minutos) de modo que se quede en manos de la propia clase consultar de forma periódica cual es la dirección IP, notificando al objeto que hayamos registrado con la dirección que se está utilizando y si esta es la misma o bien ha cambiado.

He utilizado el patrón de diseño Singleton para simplificar aún más el uso de la clase, lo que significa que ni siquiera es preciso crear previamente una instancia de la misma para su uso. Después de todo, no tendría mucho sentido contar con varias instancias de esta misma funcionalidad.

Tanto la clase como el proyecto que la acompaña a modo de ejemplo de su funcionalidad están disponibles en este enlace del repositorio de GitHub; y si bien actualmente es aplicable a proyectos Desktop (Windows, macOS y Linux), está previsto añadir compatibilidad también con iOS.

Javier Rodriguez

Consultor, desarrollador y formador con más de 25 años de experiencia. Reconocido experto en el mundo Apple, autor de varios libros sobre tecnología.

Si tienes un proyecto o necesitas ayuda, ¡ponte en contacto conmigo!

2 Comentarios en “IPify para Xojo
  1. Tobias Bussmann dice:

    s/HTTPSSocket/HTTPSecureSocket/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*