gpt4 book ai didi

python - 如何使用 python 使用默认凭据登录路由器

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:43 25 4
gpt4 key购买 nike

我有 TP Link 路由器 (WR841N)。我想登录我的 TP Link 路由器,需要使用脚本更改主要和辅助 DNS。

我尝试使用以下脚本登录但未成功:

import urllib2
import urllib
import cookielib

def main():
userName = 'admin'
pcPassword = 'admin'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'userName' : userName, 'pcPassword' : pcPassword})
resp = opener.open('http://192.168.0.1/userRpm/LoginRpm.htm', login_data)
print(resp.read())

if __name__ == '__main__':
main()

然后如何使用脚本更改主 DNS 和辅助 DNS。

最佳答案

CookieProcessor 显然没有设置 POST header 。您需要设置 Content-Type 和 Content-Length 以匹配您的登录数据。

我建议您安装使用 urllib2.install_opener() 构建的 opener,然后使用 request:

r = urllib2.Request('http://192.168.0.1/userRpm/LoginRpm.htm')
r.add_header("Content-Type", "application/x-www-form-urlencoded")
r.add_header("Content-Length", str(len(login_data)))
r.add_data(login_data)
u = urllib2.urlopen(r)
print u.read()
u.close()

然后您必须继续填写所有其他表格以更改您想要的内容。

如果cookie不是由javascript管理的,您将能够做到这一点。如果是,也许即使如此,如果您仔细检查代码并从 javascript 代码中手动提取 cookie 结果。我以前做过。

但是,是的,SSH 或 telnet 或 rlogin 会比 HTTP 更容易。要继续使用 HTTP,请查看 Requests 包,它会很有帮助,并使您的代码更小。它包括为您进行 session 管理。

如果登录表单将 enctype 属性设置为其他内容,则将 urlencoded 类型添加到 content-type 可能没有帮助。 (纯文本或多部分)。

我认为不会出现这种情况,但如果是这样,您仍然可以做更多的工作。

关于python - 如何使用 python 使用默认凭据登录路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33593598/

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