Advertisement
Guest User

Untitled

a guest
Sep 5th, 2015
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.01 KB | None | 0 0
  1. #!/usr/bin/python
  2. import re,hashlib,requests,sys,time,threading
  3. class FritzBoxApi(object):
  4. def __init__(self, hhost, ppw, sSSID):
  5. global host,pw,SSID,url,headers,sid, pause
  6. host = hhost
  7. pw = ppw
  8. SSID = sSSID
  9. url = 'http://'+host
  10. headers = {
  11. 'Host': host,
  12. 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0',
  13. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  14. 'Accept-Language': 'de,en-US;q=0.7,en;q=0.3',
  15. 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
  16. 'Referer': '',
  17. 'Connection': 'keep-alive',
  18. 'Pragma': 'no-cache',
  19. 'Cache-Control': 'no-cache',
  20. }
  21.  
  22. def getsid(self):
  23. try:
  24. self.pause = 1
  25. r = requests.get(url + "/login_sid.lua")
  26. challengereg = re.search(r'<Challenge>(.*)</\Challenge>', r.text, re.M|re.I).group(1)
  27. challengestr = challengereg+"-"+pw
  28. responsehash = hashlib.md5(challengestr.encode('utf-16le')).hexdigest()
  29. response = challengereg+"-"+responsehash
  30. data = {'response' : response,'page': '','username' : ''}
  31. rp = requests.post(url+'/login_sid.lua',headers=headers, data=data)
  32. sid = re.search(r'<SID>(.*)</SID>', rp.text, re.M|re.I).group(1)
  33. self.sid = sid
  34. t = threading.Timer(555.0, self.getsid)
  35. t.start()
  36. self.pause = 0
  37. return(sid)
  38. except Exception as e:
  39. print(str(e))
  40.  
  41. def pause(self):
  42. return(self.pause)
  43.  
  44. def status(self):
  45. r = requests.get(url + "/wlan/wlan_settings.lua?sid="+self.sid)
  46. if 'name="active" checked>&nbsp;<label for="uiView_Active">WLAN-Funknetz aktiv' in r.text:
  47. return("W-Lan an!")
  48. elif 'name="active" >&nbsp;<label for="uiView_Active">WLAN-Funknetz aktiv' in r.text:
  49. return("W-Lan aus!")
  50. else:
  51. return("Fehler")
  52.  
  53. def wlan(self,inputvar):
  54. headers['Referer'] = url+'/wlan/wlan_settings.lua?sid='+self.sid
  55. if inputvar == 1:
  56. data = 'active=on&SSID='+SSID+'&hidden_ssid=on&sid='+self.sid+'&print=&validate=apply&xhr=1'
  57. data2 = 'active=on&SSID='+SSID+'&hidden_ssid=on&sid='+self.sid+'&apply='
  58. else:
  59. data = 'sid='+self.sid+'&print=&validate=apply&xhr=1'
  60. data2 = 'sid='+self.sid+'&apply='
  61. requests.post(url+'/wlan/wlan_settings.lua?sid='+self.sid, headers=headers, data=data)
  62. requests.post(url+'/wlan/wlan_settings.lua?sid='+self.sid, headers=headers, data=data2)
  63.  
  64. def internetfilter(self,inputvar):
  65. headers['Referer'] = url+'/internet/kids_profileedit.lua?sid='+self.sid+'&edit=filtprof1&back_to_page='
  66. if inputvar == 1:
  67. data = 'sid='+self.sid+'&back_to_page=%2Finternet%2Fkids_profilelist.lua&edit=filtprof1&time=never&bpjm=on&netappschosen=&choosenetapps=choose&validate=apply&xhr=1'
  68. data2 = 'sid='+self.sid+'&back_to_page=%2Finternet%2Fkids_profilelist.lua&edit=filtprof1&time=never&bpjm=on&netappschosen=&choosenetapps=choose&apply=&timer_complete=1'
  69. else:
  70. data = 'sid='+self.sid+'&back_to_page=%2Finternet%2Fkids_profilelist.lua&edit=filtprof1&time=unlimited&bpjm=on&netappschosen=&choosenetapps=choose&validate=apply&xhr=1'
  71. data2 = 'sid='+self.sid+'&back_to_page=%2Finternet%2Fkids_profilelist.lua&edit=filtprof1&time=unlimited&bpjm=on&netappschosen=&choosenetapps=choose&apply=&timer_complete=0'
  72. requests.post(url+'/internet/kids_profileedit.lua', headers=headers, data=data)
  73. requests.post(url+'/internet/kids_profileedit.lua', headers=headers, data=data2)
  74.  
  75. def useron(self):
  76. r = requests.get(url + "/net/network_user_devices.lua?sid="+self.sid)
  77. userreg = re.findall(r'(?m)\["name"\]\s=\s"([^"]+?)",[^[]+?\["online"\]\s=\s"1",', r.text)
  78. return(userreg)
  79.  
  80. def ip(self):
  81. headers['Referer'] = url+'/home/home.lua?sid='+self.sid
  82. r = requests.get(url + "/internet/inetstat_monitor.lua?sid="+self.sid, headers=headers)
  83. try:
  84. ip = re.search(r'IP-Adresse: (.*)</span>', r.text).group(1)
  85. except:
  86. return(-1)
  87. return(ip)
  88.  
  89. def reconnect(self):
  90. previp = self.ip()
  91. headers['Referer'] = url+'/internet/inetstat_monitor.lua?'+self.sid
  92. requests.get(url+'/internet/inetstat_monitor.lua?sid='+self.sid+'&useajax=1&action=disconnect&xhr=1&t1437227338176=nocache', headers=headers)
  93. time.sleep(5)
  94. newip = self.ip()
  95. if previp != newip:
  96. return('Successfull reconnect!')
  97. else:
  98. return('Reconnect failed!')
  99. def ctime(self):
  100. return(time.strftime("%H:%M:%S", time.localtime()))
  101.  
  102. if __name__ == '__main__':
  103. time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement