En este artículo, te mostraré cómo encontrar la ubicación geográfica de la dirección IP de un sistema Linux remoto mediante API abiertas y un simple script de bash desde la línea de comandos o terminal.
En Internet, cada servidor tiene una dirección IP pública, que se asigna directamente en el servidor o mediante un router que envía el tráfico de la red a ese servidor.
Las direcciones IP proporcionan una manera fácil de rastrear la ubicación del servidor en el mundo mediante el uso de dos API útiles proporcionadas por ipinfo.io e ipvigilante.com para conectar la ciudad, el estado y el país con un servidor.
- Antes de continuar, necesitas saber +10 comandos para saber la dirección IP PÚBLICA en Linux
1. Instalar Curl y jq
Para obtener la ubicación geográfica de una dirección IP pública, debemos instalar el downloader de línea de comandos curl
y la herramienta de línea de comandos jq
para procesar los datos JSON de las API de geolocalización.
sudo apt install curl jq #Ubuntu/Debian
sudo yum install curl jq #CentOS/RHEL
sudo dnf install curl jq #Fedora 22+
sudo zypper install curl jq #openSUSE
2. Encontrar la dirección IP pública del servidor
Para obtener la dirección IP pública del servidor, usa el siguiente comando curl
para hacer una solicitud de API a ipinfo.io en tu terminal como se muestra:
c u r l https://ipinfo.io/ip
3. Obtener datos de ubicación IP de la API
Una vez que tengas la dirección IP pública del servidor, ahora puedes realizar una solicitud a la API de ipvigilante.com para obtener los datos de geolocalización mediante el siguiente comando. Asegúrate de reemplazar <TU_IP>
con la IP pública del servidor.
c u r l https://ipvigilante.com/<TU_IP>
4. Automatizar la llamada a la API usando un Script de Bash
Ahora, para automatizar el proceso de API, crearé un script llamado ObtenerIpGeo.sh (puedes nombrarlo como quieras) usando cualquiera de tus editores de línea de comando favoritos.
vim ObtenerIpGeo.sh
Luego copia y pega el siguiente comando largo en él:
c u r l -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Guarda el archivo y haz que el script sea ejecutable con el siguiente comando.
chmod +x ObtenerIpGeo.sh
Finalmente, ejecuta el script para obtener la ubicación geográfica de tu IP de Linux como se muestra en la siguiente captura de pantalla.
./ObtenerIpGeo.sh
El script anterior muestra el nombre de la ciudad y el país junto con las coordenadas aproximadas de latitud y longitud.
Alternativamente, también puedes ejecutar el comando anterior sin guardarlo en un script como se muestra:
$ c u r l -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
También te puede interesar leer los siguientes artículos relacionados:
¡Eso es todo! En este breve artículo, te he mostrado cómo obtener la ubicación geográfica de de una IP en Linux desde la terminal mediante los comandos curl
y jq
. ¡Compártelo! :’)