2010-03-13 11 views
9

Estoy buscando una buena aplicación de geolocalización para usar desde bash. Quiero que esta llamada regrese, como mínimo, el nombre de la ciudad en la que me encuentro y el estado.Cómo obtener mi geolocalización en bash

Imagino que debe haber algún sitio que pueda curvar, o algún lenguaje de scripts que tenga un paquete que funcione. La máquina no tiene un GPS, pero usa la conexión inalámbrica a internet la mayor parte del tiempo, si es necesario.

Respuesta

8

Estaba viendo este problema de nuevo recientemente y encontré whereami, una secuencia de comandos bash de geolocalización para Mac OS X Snow Leopard, que aprovecha Core Location. Esto tenderá a ser mucho más preciso que la geolocalización IP, y funciona bien en mis pruebas.

+0

Eso es simplemente sexy. Gracias por el enlace! – icco

+1

Parece que no se construye más según sus instrucciones. – sje397

+0

Lo mismo aquí, hay una solicitud de extracción que agrega soporte para Swift 2, desafortunadamente Swift 3 está predeterminado en Xcode 8. –

0

¿Internet inalámbrico que significa WiFi, CDMA2k, UMTS, EDGE ...? ¿Y tu transportista? No es que importe.

Realmente. Comenzaría a invertir en un dongle GPS.

+0

sólo un buen ol 802.11g. No debería necesitar un GPS si mi navegador puede obtener mi ubicación sin uno. – icco

+0

Supongo que esto es para ti: ¿una computadora móvil? :) Puedes obtener la ubicación * a * sin GPS, nunca se garantiza que sea la correcta (los servicios de GeoIP pueden colocarte en un estado completamente diferente solo porque el ISP está registrado allí en 'whois'.) – vladr

1

Arrastrar el primer resultado de Google para "geoip" parece funcionar con la suficiente facilidad.

 
$ curl http://www.maxmind.com/app/locate_my_ip | 
> awk '/<table>/{RS=RS RS}/tblProduct1/' 

No he comprobado su EULA para ver si el uso de su servicio de esta manera está bien, pero lo hacen también proporcionar a las bibliotecas GeoIP para C, Perl, Python, etc., con una base de datos "lite" que pueda distribuir (con conditions).

+0

Bueno, estoy en Cambridge MA aún maxmind me pone en Boston (cerca, pero no es lo mismo), y hostip.info me pone en ... Reston, VA, etc. :) No es sorprendente ya que probablemente más de la mitad de la información aún proviene de 'whois' . – vladr

+0

Cool. Estoy tratando de pensar ahora en una buena manera de limpiar solo la ciudad, la región y el país. – icco

1

Si su plataforma es un nixlike * que apoya network-manager, puede utilizar este script: curl "https://maps.googleapis.com/maps/api/browserlocation/json?browser=firefox&key=AIzaSyDBgL8fm9bD8RLShATOLI1xKmFcZ4ieMkM&sensor=true" --data-urlencode "`nmcli -f SSID,BSSID,SIGNAL dev wifi list |perl -ne "if(s/^(.+?)\s+(..:..:..:..:..:..)\s+(.+?)\s*$/&wifi=mac:\2|ssid:\1|ss:\3/g){print;}"`" Salida How to create a script to query Google Browserlocation para más detalles.

Tenga en cuenta que este servicio tiene un límite. Al principio funcionaba bien, pero ahora obtengo "status" : "OVER_QUERY_LIMIT". No sé cuál es el límite porque solo puedo encontrar referencias de geocodificación, pero si alguien sabe, ¡por favor díganme!

5

Desde whereami no es (oficialmente) disponible para Swift Swift 2 y 3, yo cavé un poco más y encontré locateme lo que hace su trabajo en OSX 10.12.4:

Screenshot of LocateMe Su pide permiso primera vez , y luego funciona sin ninguna interacción adicional. Además, el parámetro format es agradable:

enter image description here

Cuestiones relacionadas