我想知道是否有一个工具可以让我连接到路由器并关闭它,然后从 python 脚本重新启动它。
我知道如果我写:
import os
os.system("ssh -l root 192.168.2.1")
我可以通过 python 连接到我的路由器。但是,我不知道如何应用路由器的密码并登录它,以便重新启动它。
因此,经过一番研究后,我编写了以下代码,以便使用 python 脚本通过 SSH 会话连接到我的路由器:
import os, urllib, urllib2, re
def InterfaceControl():
#os.system("echo training")
os.system("ssh -l root 192.168.2.1")
os.system("echo yes")
os.system("echo My_ROUTER_PASSWORD")
os.system("shutdown -r")
def main():
InterfaceControl()
if __name__=="__main__":
main()
问题是我仍然无法使用此代码连接到我的路由器,而且 IDLE(我用于 python 脚本的编辑器)崩溃。谁能帮我改进这段代码?
这取决于您的 tplink 设备型号和固件,因为身份验证算法因型号而异。
我编写了这个 python 脚本,它适用于我的 tp link W740N。该代码解释了如何使用请求包在此设备上进行身份验证
#!/usr/bin/python3
# imports
from requests import get
from base64 import b64encode
from urllib.parse import quote
# constants
tplink = '192.168.0.1'
user = 'admin'
password = 'admin'
url_template = 'http://{}/userRpm/SysRebootRpm.htm?Reboot=Reboot'
if __name__ == '__main__':
auth_bytes = bytes(user+':'+password, 'utf-8')
auth_b64_bytes = b64encode(auth_bytes)
auth_b64_str = str(auth_b64_bytes, 'utf-8')
auth_str = quote('Basic {}'.format(auth_b64_str))
auth = {
'Referer': 'http://'+tplink+'/',
'Authorization': auth_str,
}
reboot_url = url_template.format(tplink)
r = get(reboot_url, headers=auth)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)