das vorliegende script erlaubt es auf routern geoguess auszuführen und eine schätzung der Koordinaten based on Nachbar Wifi
könnte man weiterentwickeln, so dass sich die router letztlich selber geo geben … basierend auf nahegelegenen WLAN APs… hier nur default ausgabe. in etwa so
# http://openfreiburg.de/freifunk/meshviewer/#!v:m;n:60e327ee0562
# vgl Link vom Ziel http://www.flopp.net/?z=15&m=A:47.9930744:7.8396721
{"location": {"lat": 47.9930744, "lng": 7.8396721}, "accuracy": 80.5447875}
Kernelement wäre
wget -qO- "$(i=0;echo -n "http://openfreiburg.de/foo.php?";for line in $(iwinfo phy0 scan |grep -o -E [0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}[:][0-9A-F]{2}); do if [ $i != 0 ] ; then echo -n "&"; fi; echo -n "mac"$i"="$line; let i++; done)"
beispiel PHP, extrem Simpel
(um https zu „umgehen“ wird das letztlich von dem knoten aufgerufen, was wiederum die mozilla datenbank ( != google/ms/apple/tomtom abfragt)
<?php
function IsValid($mac)
{
return (preg_match('/([a-fA-F0-9]{2}[:|\-]?){6}$/', $mac) == 1);
}
# validate and append all macs
foreach($_GET as $mac=>$val)
{ if(IsValid($val)) { $full .= "{\\\"macAddress\\\": \\\"$val\\\"}," ; } };
# remove last ","
$full = rtrim($full, ",");
# substr($full,0,-1);
system("wget -qO- \"https://location.services.mozilla.com/v1/geolocate?key=test\" --post-data=\"{ \\\"wifiAccessPoints\\\": [$full],\\\"considerIp\\\": \\\"false\\\"}\" ");
?>
selbstredend wäre es nicht verkehrt ihr nutzt euer eigenes php script und besorgt euch ggf nen api key, den sollte man als freifunker mit nicht 10000 anfragen monat auch einfach bekommen
https://github.com/viisauksena/gluon-banner/commit/4e036b3d47a47e28a573fa34d32e1ada1cdf80ce
das löst dann auch den thread hier auf Geo geraten aus Nachbar WIFI Accesspoints - Beispielscript