add wifi -> location api example

This commit is contained in:
Dominik Heidler 2015-09-03 14:32:08 +02:00
parent d89396516c
commit 41a89baa0c
1 changed files with 43 additions and 0 deletions

43
contrib/geolocate.py Executable file
View File

@ -0,0 +1,43 @@
#!/usr/bin/python
import requests
import subprocess
# doku: https://developers.google.com/maps/documentation/geolocation/intro#wifi_access_point_object
"""
r = requests.post("https://www.googleapis.com/geolocation/v1/geolocate", params={"key": "AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM"}, json={
"wifiAccessPoints": [
{
"macAddress": "10-fe-ed-af-43-44",
"signalStrength": 100
},
{
"macAddress": "02-ca-ff-ee-ba-be",
"signalStrength": 100
}
]
})
print(r.text)
"""
networks = []
o = subprocess.check_output(["iwlist", "wlan0", "scanning"])
ls = o.decode("UTF-8").split(" Cell")
for wifi in ls[1:]:
for field in wifi.split("\n"):
if "Address:" in field:
mac = field.split("Address: ")[1]
elif "Signal level=" in field:
signal_strength = field.split("Signal level=")[1].split(" dBm")[0]
print("%s -> %s" % (mac, signal_strength))
networks.append({"macAddress": mac, "signalStrength": signal_strength})
r = requests.post("https://www.googleapis.com/geolocation/v1/geolocate",
params={"key": "AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM"},
json={"wifiAccessPoints": networks}
)
print({"wifiAccessPoints": networks})
print(r.text)