Obtenga información de geolocalización de la dirección IP en Bash en Linux
A veces es necesario obtener rápidamente la información de geolocalización de una dirección IP. En Linux, puede utilizar el poder de las aplicaciones de consola para ahorrar tiempo y recuperar esta información rápidamente. Veamos cómo se puede hacer.
Anuncio publicitario
Para obtener la información de ubicación geográfica sobre una dirección IP específica, debe utilizar algún servicio en línea que proporcione la API adecuada. Es una buena idea utilizar algún servicio público para evitar el procedimiento de autorización y la gestión de claves API. Uno de esos servicios es FreeGeoIP.net.
Proporciona una API HTTP pública para buscar la geolocalización de direcciones IP. Utiliza una base de datos de direcciones IP que están asociadas con ciudades junto con otra información relevante como zona horaria, latitud y longitud. Esto es muy útil.
El servicio puede proporcionar resultados de búsqueda como JSON o XML. Entonces, si combinamos curl con algún analizador JSON, podemos obtener la información requerida.
Usaré mi analizador JSON favorito, jq:
Es muy ligero y rápido.
Para nuestro caso, la consulta debería ser la siguiente:
http://freegeoip.net/json/119.94.116.145
La parte "json" aquí es el formato de datos deseado. Además de JSON, puede ser XML o CSV.
Ejecutemos la consulta con curl y veamos el resultado:
El resultado es una salida JSON sin procesar que es difícil de leer. Para mejorar la apariencia del conjunto de resultados, usemos la herramienta jq. Combínalo con rizo de la siguiente manera:
rizo http://freegeoip.net/json/119.94.116.145|jq
La salida será más fácil de leer:
Con jq, puede filtrar la salida y hacer que muestre solo los campos obligatorios. El siguiente comando mostrará solo el nombre del país, la latitud y la longitud:
rizo http://freegeoip.net/json/119.94.116.145|jq -r '.nombre_país, .latitude, .longitude'
Puede guardar este comando como el siguiente script de shell:
#! / bin / sh. rizos http://freegeoip.net/json/$1|jq -r '.nombre_país, .latitude, .longitude'
La próxima vez que necesite obtener información de geolocalización, puede ejecutar su script de esta manera:
./geo.sh dirección_IP
Eso es todo.