import re
import argparse
import requests
import datetime
# from requests_toolbelt.utils import dump
session = requests.session()
parser = argparse.ArgumentParser(description="Jio
Router Reboot Script")
parser.add_argument("password", help="Jio Router admin password")
parser.add_argument("--ip", help="Jio Router login page ip")
args = parser.parse_args()
# def logging_hook(response, *args, **kwargs):
# data = dump.dump_all(response)
# print(data.decode("utf-8"))
# session.hooks["response"] = [logging_hook]
def retrieve_token(ip, password) -> str:
token = ""
try:
url = f"http://{ip}/platform.cgi"
headers = {"referer": url}
data = {"thispage": "index.html", "users.username": "admin",
"users.password": password, "button.login.users.dashboard": "Login"}
response = session.post(url, headers=headers, data=data)
token_regex = r"name=\"token\"[\n\r\s]*value=\"(\w+)\""
matches = re.search(token_regex, response.text)
if matches and matches.groups() and matches.group(1):
token = matches.group(1)
else:
raise Exception
except Exception:
print("error: unable to retrieve token, check password, router ip or try again")
return token
def perform_reboot(ip, token):
try:
url = f"http://{ip}/platform.cgi"
headers = {"referer": url}
data = {"thispage": "backupRestore.html", "token": token,
"button.reboot.statusPage": "Reboot"}
response = session.post(url, headers=headers, data=data)
rebooted_regex = r"Router will be up in"
if re.search(rebooted_regex, response.text):
print("jio router rebooted successfully at",
datetime.datetime.now().isoformat())
else:
raise Exception
except Exception as e:
print("error: unable to perform reboot, try again", e)
def jio_router_reboot():
# print(requests.
version)
if not args.ip:
args.ip = "192.168.29.1"
token = retrieve_token(args.ip, args.password)
if token:
perform_reboot(args.ip, token)
if
name == "
main":
jio_router_reboot()
PS C:\Users\admin\Documents> python jio-router-reboot.py Netadmin@2025 --ip 192.168.29.1
error: unable to perform reboot, try again
this error getting while running script