def get_ssid(self): if not self.logged_in: raise rout3r.RouterLoggedOutException("This object has been logged out") result = self._get_advanced_wireless_content() if self._failure_str in result: self._force_logout() return urllib.parse.unquote(_scrape(result, "\"wl_ssid_org\" value=", "\">"))
def get_firmware(self): if not self.logged_in: raise rout3r.RouterLoggedOutException( "This object has been logged out") get = requests.get("http://{0}/modemstatus_home.html".format( self.ip_address)) return _scrape(get.text, "var soft_ver=", "'")
def get_clients(self): if not self.logged_in: raise rout3r.RouterLoggedOutException( "This object has been logged out") get = requests.get( "http://{0}/modemstatus_activeuserlist_refresh.html".format( self.ip_address)) host_info = get.text.split("|") clients = [] for host in host_info: if " " not in host: continue client = rout3r.RouterClient() space = host.index(" ") client.ip_address = host[:space] client.name = _scrape(host, "(", ")") host = host[host.index("/", host.index("/") + 1) + 1:] slash = host.index("/") client.mac_address = host[:slash] host = host[slash + 1:] connection_type = host[:host.index("/")] if connection_type == "802.11": client.connection_type = "wifi" elif connection_type == "Ethernet": client.connection_type = connection_type.lower() else: client.connection_type = "unknown" clients.append(client) return clients
def get_firmware(self): if not self.logged_in: raise rout3r.RouterLoggedOutException("This object has been logged out") response = self._session.get("http://{}/index.asp".format(self.ip_address), headers=_make_headers("index.asp")) if self._failure_str in response.text: self._force_logout() return _scrape(response.text, "\"firmver\" value=", "\">")
def get_key(self): if not self.logged_in: raise rout3r.RouterLoggedOutException( "This object has been logged out") get = requests.get( "http://{0}/wirelesssetup_basicsettings.html".format( self.ip_address)) return _scrape(get.text, "gv_wpapsk_key =", "\"")
def reboot(self): if not self.logged_in: raise rout3r.RouterLoggedOutException( "This object has been logged out") result = requests.post("http://{0}/rebootinfo.cgi".format( self.ip_address), params={"Reboot": 1}) if result.status_code == 200: self.logged_in = False return True return False
def disable_radio(self): if not self.logged_in: raise rout3r.RouterLoggedOutException( "This object has been logged out") post = requests.post( "http://{0}/wirelesssetup_basicsettings.wl".format( self.ip_address), params={ "wlRadio": 0, "wlSsid_wl0v0": self.get_ssid(), "aeiwlDisabledByGui": 0, "needthankyou": 1 })
def reboot(self): # Untested if not self.logged_in: raise rout3r.RouterLoggedOutException("This object has been logged out") result = self._session.post("http://{}/apply.cgi".format(self.ip_address), data={ "action_mode": "reboot", "action_script": "", "action_wait": 140 }, headers=_make_headers("apply.asp")) if result.status_code == 200: self.logged_in = False return True return False
def get_clients(self): if not self.logged_in: raise rout3r.RouterLoggedOutException("This object has been logged out") response = self._session.get("http://{}/update_clients.asp".format(self.ip_address), params={ "_": millis() }, headers=_make_headers("index.asp")) if self._failure_str in response.text: self._force_logout() response_json = json.loads(_scrape(response.text, "fromNetworkmapd :", "nmpClient").strip()[:-1]) result = list() for key, element in response_json[0].items(): if key == "maclist": continue client = AsusRouterClient() client.name = element["name"] client.ip_address = element["ip"] client.mac_address = key client.is_online = element["isOnline"] == 1 vendor = element["vendor"] client.vendor = None if not vendor else vendor nickname = element["nickName"] client.nickname = None if not nickname else nickname client.ip_method = element["ipMethod"] client.internet_allowed = element["internetMode"] == "allow" client.radio_strength = int(element["rssi"]) connection_type = element["isWL"] if connection_type: try: client.connection_type = self.connection_types[int(connection_type)] except: client.connection_type = "unknown" else: client.connection_type = "unknown" result.append(client) return result
def _force_logout(self): self.logout() raise rout3r.RouterLoggedOutException("This object is now logged out")
def disable_radio(self): if not self.logged_in: raise rout3r.RouterLoggedOutException("This object has been logged out")
def set_ssid(self, ssid): if not self.logged_in: raise rout3r.RouterLoggedOutException("This object has been logged out")