Python3控制路由器——使用requests重启极路由.py

 更新时间:2016年05月11日 11:11:46   作者:codegay  
通过本文给大家介绍Python3控制路由器——使用requests重启极路由.py的相关知识,代码写了相应的注释,以后再写成可以方便调用的模块,感兴趣的朋友一起学习吧

通过本文给大家介绍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) #重启

关于本文给大家介绍的Python3控制路由器——使用requests重启极路由.py的知识就给大家介绍这么多,本文代码内容附有注释,大家在参考过程中有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Python标准库之日期、时间和日历模块

    Python标准库之日期、时间和日历模块

    这篇文章介绍了Python标准库之日期、时间和日历模块,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Python callable函数使用方法详解

    Python callable函数使用方法详解

    这篇文章主要介绍了Python callable函数使用方法,一个可callable的对象是指可以被调用执行的对象,并且可以传入参数, 用另一个简单的描述方式,只要可以在一个对象的后面使用小括号来执行代码,那么这个对象就是callable对象,下面来详细介绍使用方法,需要的朋友可以参考下
    2024-10-10
  • python打开url并按指定块读取网页内容的方法

    python打开url并按指定块读取网页内容的方法

    这篇文章主要介绍了python打开url并按指定块读取网页内容的方法,涉及Python操作URL及网页内容的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 如何利用pygame实现简单的五子棋游戏

    如何利用pygame实现简单的五子棋游戏

    这篇文章主要给大家介绍了关于如何利用pygame实现简单的五子棋游戏的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用pygame具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • python pytest进阶之fixture详解

    python pytest进阶之fixture详解

    这篇文章主要介绍了python pytest进阶之fixture详解,学pytest就不得不说fixture,fixture是pytest的精髓所在,就像unittest中的setup和teardown一样,如果不学fixture那么使用pytest和使用unittest是没什么区别的,需要的朋友可以参考下
    2019-06-06
  • 如何理解python对象

    如何理解python对象

    在本篇文章里小编给大家分享的是一篇关于python对象的理解相关内容,有兴趣的朋友们可以学习下。
    2020-06-06
  • python实现QQ批量登录功能

    python实现QQ批量登录功能

    这篇文章主要为大家详细介绍了python实现QQ批量登录功能,以及python3.6批量登陆QQ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Python中asyncio的多种用法举例(异步同步)

    Python中asyncio的多种用法举例(异步同步)

    这篇文章主要给大家介绍了关于Python中asyncio的多种用法,包括顺序执行非异步任务、顺序执行异步任务、并行执行异步任务以及并行执行非异步任务,通过使用asyncio模块,可以有效地提高程序的执行效率,尤其是在处理I/O密集型任务时,需要的朋友可以参考下
    2024-11-11
  • python 使用cx-freeze打包程序的实现

    python 使用cx-freeze打包程序的实现

    这篇文章主要介绍了python 使用cx-freeze打包程序的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • ConvNeXt实战之实现植物幼苗分类

    ConvNeXt实战之实现植物幼苗分类

    ConvNeXts由标准ConvNet模块构建,在准确性和可扩展性方面与 Transformer竞争,实现87.8% ImageNet top-1 准确率,在 COCO 检测和 ADE20K 分割方面优于 Swin Transformers。本文将利用ConvNeXt实现植物幼苗分类,需要的可以参考一下
    2022-01-01

最新评论