2011-01-10 9 views
7

Il supporto per l'API di geolocalizzazione di Google è ora integrato nella maggior parte dei browser. Lo fanno, in parte, inviando a Google l'indirizzo MAC dei punti di accesso 802.11 nelle vicinanze (quelli i cui beacon vengono catturati dal computer.)Geolocazione di punti di accesso 802.11 tramite indirizzo MAC utilizzando l'API di geolocalizzazione di Google

Ho un gran numero di pacchetti 802.11 catturati da varie posizioni. Sto cercando di geolocalizzare i punti di accesso 802.11. Supponiamo che abbiamo solo i loro indirizzi mac. Questo dovrebbe essere possibile utilizzando l'API di geolocalizzazione di Google.

fonti che ho trovato fino ad oggi che potrebbe essere utile in questo includono:

La prima è probabilmente la migliore scommessa. Il problema è che non sono sicuro di come utilizzare l'esempio e di creare effettivamente un programma che mi permetta di reindirizzare gli indirizzi MAC e generare coppie lat/long. Inoltre non sono sicuro di come eseguire JavaScript da una riga di comando Unix/MacOS.

So che questo è molto da chiedere, ma qualcuno ha qualche idea su dove dovrei iniziare? utilizzo della riga di

risposta

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. Stupefacente. Grazie. Come mai non posso fare cose del genere? – vy32

+1

Credo che il servizio di localizzazione di Google supporti anche https, per quello che vale. – npdoty

+1

Ora sono davvero confuso. Ho provato questo con un numero di indirizzi Ethernet e stanno tutti tornando indietro: {'city': u'Monterey ',' zip ': u'93940', 'paese': u 'Stati Uniti', 'regione' : u'California ',' long ': -121.894676,' street ': u'W Franklin St', 'lat': 36.600237, 'accuratezza': 43000.0} Questo non ha senso per me. – vy32

Problemi correlati