LinuxParty
En este artículo, le mostraremos cómo encontrar la ubicación geográfica de la dirección IP de un sistema Linux remoto utilizando API abiertas y un script bash simple desde la línea de comandos.
En Internet, cada servidor tiene una dirección IP pública, que se asigna directamente al servidor o mediante un enrutador que envía tráfico de 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.
Instalar Curl y jq
Para obtener la ubicación geográfica de la dirección IP del servidor, necesitamos instalar el descargador 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
Encuentra la dirección IP pública del servidor
Para obtener la dirección IP pública del servidor , use el siguiente comando curl para realizar una solicitud de API a ipinfo.io en su terminal como se muestra.
$ curl https://ipinfo.io/ip
[javier@localhost ~]$ curl https://ipinfo.io/ip
83.37.23.175
[javier@localhost ~]$
Obtenga datos de ubicación IP de la API
Una vez que tenga la dirección IP pública del servidor, ahora puede hacer una solicitud a la API de ipvigilante.com para obtener los datos de geolocalización con el siguiente comando. Asegúrese de reemplazar <your ip address>
con la IP pública del servidor.
$ curl https://ipvigilante.com/<your ip address>
{"status":"success","data":{"ipv4":"83.37.23.175","continent_name":"Europe","country_name":"Spain",
"subdivision_1_name":"Andalusia","subdivision_2_name":"Cadiz","city_name":"Medina-Sidonia",
"latitude":"36.45690","longitude":"-5.92720"}}
Automatice la llamada a la API utilizando Bash Script
Ahora para automatizar el proceso de API, crearemos un script llamado getipgeoloc.sh
(puede nombrarlo como quiera) usando cualquiera de sus editores de línea de comandos favoritos .
$ vim getipgeoloc.sh
Luego copie y pegue el siguiente comando largo en él.
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
Guarde el archivo y haga que el script sea ejecutable con el siguiente comando.
$ chmod + x getipgeoloc.sh
Finalmente, ejecute el script para obtener su ubicación geográfica de IP de Linux como se muestra en la siguiente captura de pantalla.
$ ./getipgeoloc.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 puede ejecutar el comando anterior sin guardarlo en un script como se muestra.
$ curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
-
Internet
- El director de inteligencia artificial de Microsoft afirma que la inteligencia artificial conversacional reemplazará a los navegadores web
- Cómo usar una VPN en Linux y por qué deberías hacerlo
- La muerte lenta del hipervínculo
- Cómo cambiar dirección IP (modo gráfico), por qué querría hacerlo y cuándo no debería hacerlo
- 10 comandos "IP" útiles para configurar interfaces de red
- Cómo configurar conexiones IP de red usando 'nmcli' en Linux
- Configuración de una IP Estática en una Tarjeta de Red en Linux.
- ¿Migrar a la nube? Marque esta lista de verificación
- Nuevo estándar de Internet L4S: el plan silencioso para hacer que Internet se sienta más rápido
- Nextcloud y Roundcube se Fusionan para Impulsar la Descentralización en la Productividad en la Nube
- Los 10 mejores servidores proxy inversos de código abierto para Linux
- Una guía para principiantes para crear conexiones (Bonding) y puentes de red (Bridging) en Linux
- Conectar dos redes Locales alejadas creando de un Puente Transparente
- Crear un puente de red transparente "bridge" para conectar dos redes locales remotas
- Crear un Puente de Red o Bridge