¿Cómo obtener la geolocalización de una dirección IP en Terminal?

¿Es posible obtener la geolocalización de una dirección IP en Terminal?

No estoy seguro de qué significan los números en una dirección IP, pero debe haber alguna lógica detrás, por lo que la búsqueda no puede ser tan difícil.

¿Quieres una geolocalización de una Ip? ipubicacion.net
También con respecto a su última afirmación, no existe una correlación forzada entre los valores de las direcciones IP públicas y la geografía. Las empresas y organizaciones arriendan bloques de IP; pueden hacer con ellos lo que quieran.

Respuestas (3)

Puede hacerlo sin tener que instalar ninguna aplicación o software adicional. Simplemente use el comando curly el sitio web gratuito de geo ip http://freegeoip.app .

Ejecute el siguiente comando en la Terminal (estoy usando la IP de Apple para este ejemplo):

curl https://freegeoip.app/xml/17.178.96.59

Obtendrá sus resultados en un formato XML:

<Response>
    <IP>17.178.96.59</IP>
    <CountryCode>US</CountryCode>
    <CountryName>United States</CountryName>
    <RegionCode>CA</RegionCode>
    <RegionName>California</RegionName>
    <City>Cupertino</City>
    <ZipCode>95014</ZipCode>
    <TimeZone>America/Los_Angeles</TimeZone>
    <Latitude>37.3042</Latitude>
    <Longitude>-122.0946</Longitude>
    <MetroCode>807</MetroCode>
</Response>

Incluso puede emitir el mismo comando utilizando el nombre de dominio en lugar de la IP:

curl https://freegeoip.app/xml/apple.com

Otros formatos...

freegeoip.app también es compatible con CSV, JSON y JSONP

CSV:curl https://freegeoip.app/csv/apple.com

17.178.96.59,US,United States,CA,California,Cupertino,95014,America/Los_Angeles,37.30,-122.09,807

JSON:curl https://freegeoip.app/json/apple.com

{"ip":"17.178.96.59","country_code":"US","country_name":"United States","region_code":"CA","region_name":"California","city":"Cupertino","zip_code":"95014","time_zone":"America/Los_Angeles","latitude":37.3042,"longitude":-122.0946,"metro_code":807}

Para comprobar su propia ip...

Solo omite la ip o dominio:

curl https://freegeoip.app/xml/

NOTA: vincular una dirección IP a una ubicación geográfica no es una ciencia dura. Si bien la mayoría de las direcciones serán confiables, hay millones de direcciones que, cuando se buscan, se resolverán en una ubicación general, como el centro de una ciudad o incluso el medio del país. Hay un artículo interesante sobre cómo una granja al azar en el medio de Kansas ha sido objeto de abuso e investigaciones criminales porque un importante servicio de geolocalización colocó su bandera de "ubicación general para los EE. UU." en su granja. fusion.net/story/287592/internet-mapping-glitch-kansas-farm es un enlace al artículo.
Este extremo de la API está obsoleto y dejará de funcionar el 1 de julio de 2018. Para obtener más información, visite: github.com/apilayer/freegeoip#readme</DeprecationMessage >
parece que el nuevo "freegeoip.app" funciona como se esperaba. "freegeoip.net" quedó en desuso
@Allan curl https://freegeoip.app/xml/no muestra IPv4
@SebMa - Acabo de probarlo. Funciona como se describe.
@Allan ¿Obtiene su IPv4 o IPv6 público?
@SebMa IPv4: informará lo que le brinda su ISP, pero funciona: informa su dirección IP .
@Allan En realidad , freegeoip.app/xml informa mi IPv6, pero, por otro lado , ipinfo.io/json informa mi IPv4. ¿Cómo es que esto tiene algo que ver con mi ISP?

Hay una herramienta de línea de comandos pequeña y compacta llamada gip, escrita en C++, disponible en https://github.com/softhub-software-development/gip .

Ejemplos:

#gipsofthub.com
91.65.13.31 "Berlín, Berlín, Alemania"

#gip 91.65.13.31
91.65.13.31 "Berlín, Berlín, Alemania"

# gip -t google.com
91.65.13.254 "Berlín, Berlín, Alemania"
145.254.3.66 "Eschborn, Hesse, Alemania"
72.14.194.138 "Mountain View, California, Estados Unidos"

# gip -g softhub.com
52.5244 13.4105

Use https://github.com/maxmind/mmdbinspect con bases de datos de https://github.com/wp-statistics/GeoLite2-City :

mmdbinspect -db "$database_file" "$ip"

Puede utilizar jqpara seguir procesando la salida.