gpt4 book ai didi

python - 如何使用 python 脚本控制 TP LINK 路由器

转载 作者:行者123 更新时间:2023-12-02 13:46:46 32 4
gpt4 key购买 nike

我想知道是否有一个工具可以让我连接到路由器并关闭它,然后从 python 脚本重新启动它。
我知道如果我写:

import os
os.system("ssh -l root 192.168.2.1")
我可以通过python连接到我的路由器。但是,我不知道如何应用路由器的密码并登录它以重新启动它。
因此,在对其进行了一些研究之后,这里是我编写的代码,以便使用 python 脚本通过 SSH session 连接到我的路由器:
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 链接 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)

关于python - 如何使用 python 脚本控制 TP LINK 路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15386582/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com