Hay momentos en los que desea obtener la ubicación geográfica de una máquina Ubuntu remota en función de su dirección IP. Este artículo explicará cómo puede hacerlo obteniendo primero la IP del servidor público de un sistema y luego usando esta IP para obtener la ubicación geográfica, todo a través de las API proporcionadas por ipinfo.io e ipvigilante.com
Hemos ejecutado los comandos y procedimientos mencionados en este artículo en un sistema Ubuntu 18.04 LTS.
Mostrar la ubicación geográfica de una dirección IP en el terminal
Para obtener la ubicación geográfica de su servidor, necesitará el descargador Curl y la herramienta de línea de comandos JQ. Esta herramienta le permitirá obtener y procesar los datos requeridos de las API de geolocalización de Internet. Siga estos pasos para instalar estas herramientas y luego obtenga la información de ubicación requerida utilizando la IP pública de su máquina.
Paso 1:Instale los paquetes Curl y jq
Curl y jq están fácilmente disponibles a través del repositorio oficial de Ubuntu y se pueden instalar a través de la línea de comandos usando el comando apt-get.
Abra su aplicación Terminal ya sea a través de la búsqueda del iniciador de aplicaciones del sistema o mediante el atajo Ctrl+Alt+T.
El siguiente paso es actualizar el índice del repositorio de su sistema a través del siguiente comando:
$ sudo apt-get update
Esto le ayuda a instalar la última versión disponible de un software de Internet.
Tenga en cuenta que solo un usuario autorizado puede agregar, eliminar y configurar software en Ubuntu.
Ahora está listo para instalar las herramientas necesarias; puede hacerlo ejecutando el siguiente comando como sudo:
$ sudo apt-get install curl jq
El sistema puede pedirle la contraseña de sudo y también proporcionarle una opción S/n para continuar con la instalación. Ingrese Y y luego presione enter; el software se instalará en su sistema. Sin embargo, el proceso puede llevar algún tiempo dependiendo de la velocidad de Internet.
Paso 2:encuentre la IP pública de la máquina/servidor Ubuntu
Todos los servidores en Internet son reconocidos por direcciones IP públicas. Esta es la dirección IP asignada a su servidor directamente o a través de un enrutador de tráfico de red. Podemos obtener esta IP de su máquina utilizando la API proporcionada por ipinfo.io.
Use el siguiente comando curl para obtener su IP pública:
$ curl https://ipinfo.io/ip
El resultado, borroso aquí debido a problemas de privacidad, es la IP pública a través de la cual se reconoce su servidor en el mundo de Internet.
Paso 3:Obtener geolocalización basada en IP pública
Una vez que sepa su IP pública, puede realizar una solicitud a la API de ipvigilante.com para que le envíe la ubicación geográfica de sus servidores. Use el comando curl mencionado a continuación para obtener detalles de su ubicación, como:
- Continente
- País
- Estado/provincia
- Ciudad
- Latitud y Longitud
$ curl https://ipvigilante.com/<public-IP>
La información que obtiene es bastante detallada y cumple bien su propósito.
Utilice el script Bash para imprimir la ubicación geográfica
En lugar de seguir los pasos descritos anteriormente cada vez que tenga que verificar su ubicación geográfica, puede utilizar un script bash que describiremos aquí. Con este script bash, puede automatizar su sistema para obtener los detalles geográficos de su servidor a través de un solo comando que ejecuta este script. Así es como puede hacerlo:
Abra un nuevo archivo de script en uno de sus editores de texto favoritos. Usaremos el editor nano para abrir un archivo de script vacío con el nombre de geo_ubicación.sh
$ nano geo_location.sh
En ese archivo vacío, agregue el siguiente script.
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Consejo: En lugar de escribir todo el script en su archivo bash, puede copiarlo desde aquí y pegarlo en la Terminal usando Ctrl+Shift+V, o usando la opción Pegar del menú contextual.
Ahora, salga del archivo a través del atajo Ctrl+X y guarde el archivo en "¿Guardar búfer modificado?" mensaje escribiendo Y y luego presionando enter.
Para convertir este archivo en un script ejecutable, ejecute el siguiente comando en su Terminal:
$ chmod +x geo_location.sh
Finalmente, ejecute este script de la siguiente manera:
$ ./geo_location.sh
Puede ver cómo este script imprime la latitud, la longitud, la ciudad y el nombre del país de su servidor en la Terminal.
Si tiene que obtener la geolocalización de su servidor solo una vez, no necesita formar un script bash. De lo contrario, la secuencia de comandos automatizará todo el proceso cada vez que tenga que verificar la ubicación gráfica de su máquina Ubuntu en función de su IP pública.