https://wiki.koeln.ccc.de/index.php?title=Geowifi&feed=atom&action=historyGeowifi - Revision history2024-03-29T05:36:37ZRevision history for this page on the wikiMediaWiki 1.30.1https://wiki.koeln.ccc.de/index.php?title=Geowifi&diff=14743&oldid=prev87.79.236.180: Created page with 'Seit dem neuen Firefox 3.5 kann man nun mittels Wlan seine Position, bis auf wenige Meter genau, lokalisieren. Hierzu wird eine Datenbank von google genutzt, in der sowohl die BS…'2009-08-04T18:43:20Z<p>Created page with 'Seit dem neuen Firefox 3.5 kann man nun mittels Wlan seine Position, bis auf wenige Meter genau, lokalisieren. Hierzu wird eine Datenbank von google genutzt, in der sowohl die BS…'</p>
<p><b>New page</b></p><div>Seit dem neuen Firefox 3.5 kann man nun mittels Wlan seine Position, bis auf wenige Meter genau, lokalisieren.<br />
Hierzu wird eine Datenbank von google genutzt, in der sowohl die BSSID (MAC Adresse) als auch die Position des WLAN Access-Points gespeichert sind. <br />
Die Abfrage laeuft ueber [http://de.wikipedia.org/wiki/JSON json]. Dabei wird eine Liste mit BSSID und den jeweiligen Signalstaerken uebergeben. Die Antwort beinhaltet dann die Position, sowie die Genauigkeit.<br />
<br />
'''Achtung''' wenn die ESSID nicht in der Datenbank enthalten ist, wird zur Bestimmung geoip genutzt. Erkennbar an einem hohen accuracy Wert.<br />
<br />
Wer das Ganze mal testen moechte hier kein kurzes Python Script. Es kann der Liste wifi_towers auch mehrere AP's uebergeben werden, um sein Standpunkt genauer zu bestimmen. Die BSSID wird dem Script per Parameter uebergeben.<br />
<br />
<pre>#!/usr/bin/python<br />
import json, urllib2, sys<br />
<br />
<br />
req = {<br />
"version": "1.1.0",<br />
"host": "maps.google.com",<br />
"request_address": True,<br />
"address_language": "en_GB.UTF-8",<br />
"wifi_towers": [{'age': 0, 'signal_strength': -85, 'mac_address': sys.argv[1].replace(":","-")}]<br />
}<br />
<br />
<br />
print "Get Location of: %s" % req['wifi_towers'][0]['mac_address']<br />
result = urllib2.urlopen(urllib2.Request(url='http://www.google.com/loc/json', data=json.dumps(req)))<br />
location = json.loads(result.read())<br />
if location['location']['accuracy'] < 1000:<br />
print "http://maps.google.de/maps?f=q&source=s_q&hl=de&geocode=&q=%s+%s" %(location['location']['latitude'] , location['location']['longitude'])<br />
print "http://www.openstreetmap.org/?mlat=%s&mlon=%s" %(location['location']['latitude'] , location['location']['longitude'])<br />
print "latitude: %s\t longitude: %s\t accuracy: %s " % (location['location']['latitude'] , location['location']['longitude'], location['location']['accuracy'])<br />
else:<br />
print "not found :("<br />
</pre></div>87.79.236.180