zoukankan      html  css  js  c++  java
  • python3控制路由器--使用requests重启极路由.py

    代码写了相应的注释,以后再写成可以方便调用的模块。

    用fiddler抓包可以看到很多HTTP头,经过尝试发现不是都必须的。

    'Upgrade-Insecure-Requests':1,#必要项,值为1
    'Content-Type':'application/x-www-form-urlencoded',#必要项
    否则取不到服务顺响应返回的Set-Cookie

    """
    python3控制路由器--使用requests重启极路由.py
    2016年5月10日 06:20:56 codegay
    
    参考资料requests文档:
    http://cn.python-requests.org/zh_CN/latest/
    """
    
    import requests
    import re
    
    url="http://192.168.199.1/cgi-bin/turbo/admin_web"
    
    #用fiddler抓包可以看到很多HTTP头,经过尝试发现不是都必须的。
    
    #'Upgrade-Insecure-Requests':1,#必要项,值为1
    #'Content-Type':'application/x-www-form-urlencoded',#必要项
    #否则取不到服务顺响应返回的Set-Cookie
    
    head={#'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
          'Upgrade-Insecure-Requests':1,
          'Content-Type':'application/x-www-form-urlencoded',
          #'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36',
          #'DNT':1,
          #'Referer':'http://192.168.199.1/cgi-bin/turbo/admin_web'
          }
    
    s=requests.Session()
    r=s.post(url,data="username=admin&password=你的密码",headers=head)
    
    txt=r.text
    stok=re.findall('''stok=(w+).+?reboot''',txt)[0]
        #stok会得到类似的字符串
        #stok='1f7a2b7034c67401a20d4ce0cdde7c7d'
    print(stok)
    
    rooturl='http://192.168.199.1/cgi-bin/turbo/'
    stokurl=rooturl + ';stok=%s/api/system/reboot' % stok
    
    #带着成功登录后的cookies,并且找出stok,拼成下如URL get请求一次就可以完成路由的重启
    #stokurl='http://192.168.199.1/cgi-bin/turbo/;stok=78e3516718ff32250fa796ed4462188c/api/system/reboot'
    
    reboot=s.get(stokurl) #重启
    
  • 相关阅读:
    AJAX 基础知识
    jQuery知识点总结
    css基础应用总结
    javascript 总结
    找回密码-博客园
    centerOS 7 安装MySql
    java leetcode TreeNode类、ListNode类的实现
    iOS StatusBar状态栏文字颜色更改
    使用Jmeter压力测试工具测试
    安装node.js
  • 原文地址:https://www.cnblogs.com/gayhub/p/5476712.html
Copyright © 2011-2022 走看看