Пример #1
0
 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=", "\">"))
Пример #2
0
 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=", "'")
Пример #3
0
 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, "&#40", ")")
         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
Пример #4
0
 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=", "\">")
Пример #5
0
 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  =", "\"")
Пример #6
0
 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
Пример #7
0
 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
         })
Пример #8
0
    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
Пример #9
0
    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
Пример #10
0
 def _force_logout(self):
     self.logout()
     raise rout3r.RouterLoggedOutException("This object is now logged out")
Пример #11
0
 def disable_radio(self):
     if not self.logged_in:
         raise rout3r.RouterLoggedOutException("This object has been logged out")
Пример #12
0
 def set_ssid(self, ssid):
     if not self.logged_in:
         raise rout3r.RouterLoggedOutException("This object has been logged out")