2011-01-10 27 views
7

El soporte para la API de geolocalización de Google ahora está integrado en la mayoría de los navegadores. Lo hacen, en parte, al enviar a Google la dirección MAC de los puntos de acceso 802.11 cercanos (aquellos cuyos balizas son capturados por su computadora).Geolocalización de puntos de acceso 802.11 por dirección MAC con la API de geolocalización de Google

Tengo una gran cantidad de paquetes 802.11 capturados de varias ubicaciones. Estoy buscando geolocalizar los puntos de acceso 802.11. Supongamos que solo tenemos sus direcciones mac. Esto debería ser posible usando la API de geolocalización de Google.

Las fuentes que he encontrado hasta la fecha que podría ser útil en esta incluyen:

El primero es probablemente el mejor apuesta. El problema es que no estoy seguro de cómo usar el ejemplo y crear un programa que me permita canalizar las direcciones MAC y sacar pares lat/long. Tampoco estoy seguro de cómo ejecutar JavaScript desde una línea de comandos de Unix/MacOS.

Sé que esto es mucho pedir, pero ¿alguien tiene alguna pista sobre dónde debo comenzar? uso de la línea

Respuesta

9
<?php 

$mac = $_SERVER['argv'][1]; 


$postData = '{ 
    "version": "1.1.0", 
    "wifi_towers": [{ 
     "mac_address": "' . $mac . '", 
     "ssid": "0", 
     "signal_strength":-72 
    }] 
}'; 

$opts = array(
    'http'=>array(
    'method' => "POST", 
    'header' => 'Content-type: application/x-www-form-urlencoded', 
    'content' => $postData 
) 
); 


$response = file_get_contents(
    'http://www.google.com/loc/json', 
    false, 
    stream_context_create($opts) 
); 

$loc = json_decode($response, true); 

echo $loc['location']['latitude']; 
echo ','; 
echo $loc['location']['longitude']; 

Comando:

php geo.php "mac addy here" 
+0

wow. asombroso. Gracias. ¿Cómo es que no puedo hacer cosas así? – vy32

+1

Creo que el servicio de ubicación de Google también admite https, por lo que vale. – npdoty

+1

Ahora estoy realmente confundido. He intentado esto con varias direcciones Ethernet y todas vuelven: {'city': u'Monterey ',' zip ': u'93940', 'country': u'United States ',' region ' : u'California ',' long ': -121.894676,' street ': u'W Franklin St', 'lat': 36.600237, 'accuracy': 43000.0} Esto no tiene sentido para mí. – vy32

Cuestiones relacionadas