import requests
import re
from uuid import getnode
class WigleAgent():
def __init__(self, username, password):
self.agent(username, password)
self.mac_address()
def get_lat_lng(self, mac_address=None):
if mac_address == None:
mac_address = self.mac_address
if '-' in mac_address:
mac_address = mac_address.replace('-', ':')
try:
self.query_response = self.send_query(mac_address)
response = self.parse_response()
except IndexError:
response = 'MAC location not known'
return response
def agent(self, username, password):
self.agent = requests.Session()
self.agent.post('https://wigle.net//gps/gps/main/login',
data={'credential_0': username,
'credential_1': password,
'destination': '/gps/gps/main'})
def mac_address(self):
mac = hex(getnode())
mac_bytes = [mac[x:x+2] for x in xrange(0, len(mac), 2)]
self.mac_address = ':'.join(mac_bytes[1:6])
def send_query(self, mac_address):
response = self.agent.post(url='https://wigle.net/gps/gps/main/confirmlocquery',
data={'netid': mac_address,
'Query': 'Query'})
return response.text
def parse_response(self):
lat = self.get_lat()
lng = self.get_lng()
return lat, lng
def get_lat(self):
resp_lat = re.findall(r'maplat=.*\&', self.query_response)
lat = resp_lat[0].split('&')[0].split('=')[1]
return float(lat)
def get_lng(self):
resp_lng = re.findall(r'maplon=.*\&', self.query_response)
lng = resp_lng[0].split('&')[0].split('=')[1]
return float(lng)
Diff to Previous Revision
--- revision 1 2013-08-12 13:39:20
+++ revision 2 2013-08-12 13:45:16
@@ -1,9 +1,6 @@
import requests
import re
from uuid import getnode
-
-username = 'jamiebull1'
-password = 'pZJTG7FMrn49YPzBCT'
class WigleAgent():