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

2024-09-30 10:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有TP-Link路由器(WR841N),我想登录到TP-Link路由器,需要更改主DNSusing脚本和secondary DNSusing脚本。在

我尝试使用以下脚本登录,但没有成功:

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。在


Tags: import脚本adminmainlinkusername路由器opener
1条回答
网友
1楼 · 发布于 2024-09-30 10:28:53

显然,CookieProcessor没有设置POST头。 您需要设置内容类型和内容长度以匹配您的登录数据。在

我建议您安装使用urllib2.install\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()

然后你必须继续填写所有其他表格来改变你想要的。在

如果cookies不是由javascript管理的,那么您可以这样做。如果是这样的话,即使你仔细检查代码并从javascript代码中手动提取cookie结果,也可能是这样。我以前做过。在

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

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

我不认为这是个案,但如果是这样的话,你仍然可以做更多的工作。在

相关问题 更多 >

    热门问题