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


Posted in Python onMay 11, 2016

通过本文给大家介绍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 相关文章推荐
在Django中创建第一个静态视图
Jul 15 Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 Python
详解Python正则表达式re模块
Mar 19 Python
python查询文件夹下excel的sheet名代码实例
Apr 02 Python
python实现扫描ip地址的小程序
Apr 16 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
ubuntu上安装python的实例方法
Sep 30 Python
python+mysql实现个人论文管理系统
Oct 25 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
Python 如何批量更新已安装的库
May 26 Python
学习Python爬虫的几点建议
Aug 05 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 Python
Python3使用requests登录人人影视网站的方法
May 11 #Python
在Django中进行用户注册和邮箱验证的方法
May 09 #Python
Python数据类型详解(三)元祖:tuple
May 08 #Python
Python数据类型详解(二)列表
May 08 #Python
Python数据类型详解(一)字符串
May 08 #Python
Python常用知识点汇总
May 08 #Python
Python对list列表结构中的值进行去重的方法总结
May 07 #Python
You might like
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
javascript 精粹笔记
2010/05/09 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
js转html实体的方法
2016/09/27 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
2017/04/25 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
Vue.js获取被选择的option的value和text值方法
2018/08/24 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
js实现点击生成随机div
2020/01/16 Javascript
Python open读写文件实现脚本
2008/09/06 Python
python中字符串前面加r的作用
2015/06/04 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
Python list与NumPy array 区分详解
2019/11/06 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
新奇的小玩意:IWOOT
2016/07/21 全球购物
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
财务部出纳岗位职责
2013/12/22 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
党课主持词大全
2015/06/30 职场文书