Geo - Programa bash para geolocalización, conocer su IP publica y más

[h]Geo: Un script bash para obtener rápidamente su geolocalizacíon, localizar otra IP , conocer su IP pública etc…[/h]

La cosa interesante con las herramientas en bash es que no requieren dependencias “delicadas” y es muy fácil ver las ordenes empleadas en su código
El script Geo es un script pensado como “un comando de consola” que se emplea con argumentos.
Lo ha escrito jakewmeyer y está publicado bajo licencia libre en Git Hub.
Otra cosa divertida: tiene soporte para Linux y mac.
Pues sí… bash es también el interprete de ordenes de los sistemas operativos de Macinstosh
Su salida es mínima lo que permite usar la directamente en pipe. (o en sus scripts personales)
Parece que ha gustado a los de Arch Linux que lo han incluido en sus repositorios.
No lo he encontrado en los repositorios de kali…
…Pero la otra cosa que mola con las herramientas en bash es que no hace falta instalarlas.
Descargamos el script y lo ejecutamos. No hace falta hacer nada más…

  1. Descargar el script. En consola
    git clone https://github.com/jakewmeyer/Geo.git/*]
  2. Situar su consola.
    cd Geo/*]
  3. Ejecutar el script
    bash geo/*]

Haciendo esto veremos la ayuda en consola con los argumentos a emplear

Usage: geo [flag] -w Returns WAN IP -l Returns LAN IP(s) -r Returns Router IP -d Returns DNS Nameserver -m Returns MAC address for interface. Ex. eth0 -g Returns Current IP Geodata Custom Geo Output => [all] [query] [city] [region] [country] [zip] [isp] Example: geo -a 8.8.8.8 -o city,zip,isp -o [options] Returns Specific Geodata -a [address] For specific ip in -s -v Returns Version -h Returns Help Screen
[h]Geolocalización[/h]
Es la funcción la más llamativas
Rápida y acertada (pequeño fallo en el código postal)

Podemos ver en el script que los datos se obtienen con una petición hacía ip-api.com hecha con curl

# Fetches current geodata based on ip geodata_search() { curl -sf "http://ip-api.com/line/?fields=query,city,region,country,zip,isp" }

Si queríamos obtener unicamente la ciudad en salida podemos usar la opción **-o **

Custom Geo Output => [all] [query] [city] [region] [country] [zip] [isp] Example: geo -a 8.8.8.8 -o city,zip,isp -o [options] Returns Specific Geodata
En este caso sería:

bash geo -o city Barcelona

Con la opción -a podéis indicar otra dirección IP (publica) para conocer su localización geográfica.
El servidor de google se encuentra en “Moutain view”.

kcdtv:~/GitHub/Geo$ bash geo -a 8.8.8.8 -o city Mountain View
Un nombre evocador: Estoy seguro de que tienen una buena vista sobre el trafico web desde ahí. :smiley:

Podéis además obtener datos sobre vuestra red y interfaz como las direcciones mac, el DNS, la puerta de enlace etc…
No son cosas de otra mundo: Comandos netstat, iproute, ifconfig.
Con la ventaja de tener una salida depurada, lista para trabajar en pipe.

Bueno… las fuentes:

  1. Geo: “A Bash utility for easy wan, lan, router, dns, mac address, and geolocation output, with clean stdout for piping” by jakewmeyer @ GitHub /*]
  2. Geo – A Simple BASH Utility To Get Network And Geolocation Details by SK @ OS TechNix/*]

Anda bien gracias :slight_smile:

bash geo -g mip: France ARA Clermont-Ferrand 63000 Orange XX.X.XXX.XX