利用python重启路由器

家里用的是D-link路由器,不超过100块那种。由于路由器年代久远,偶尔会抽风连不了外网,这时就需要重启路由器。一般常规的做法一是断电重启;二是登陆路由器系统设置选项进行重启。有时路由器离电脑太远了不想跑过去断电,登陆路由器又有点烦锁,什么打开浏览器输入用户名密码找到系统设置选项再点击重启。于是就设想写个python脚本,直接双击或者快捷键打开马上重启路由器。

用python来模拟人员登陆路由器设置界面进行重启操作,人工操作其实最重要的就是两步:一是登陆路由器,二是向路由器发送重启的指令。

首先用burp site 抓取登陆路由器的信息

POST /session.cgi HTTP/1.1
Host: 192.168.5.1
Content-Length: 80
Origin: http://192.168.5.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: */*
Referer: http://192.168.5.1/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: uid=PPgJoMGJTN

REPORT_METHOD=xml&ACTION=login_plaintext&USER=admin&PASSWD=123456&CAPTCHA=

再抓取点击重启时发送到路由器的信息

POST /service.cgi HTTP/1.1
Host: 192.168.5.1
Content-Length: 12
Origin: http://192.168.5.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept: */*
Referer: http://192.168.5.1/tools_system.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: uid=S1pAXZvdoE

EVENT=REBOOT

其实整个重启过程就是两个步骤:1登陆2重启

电脑主要就是向路由器发送了上面两段信息

python代码如下:

import requests

ip=‘192.168.5.1‘
username=‘admin‘
pwd=‘123456‘

header={
‘Host‘: ip,
‘Origin‘: ‘http://‘+ip,
‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36‘,
‘Content-Type‘: ‘application/x-www-form-urlencoded‘,
‘Accept‘:‘ */*‘,
‘Referer‘: ‘http://‘+ip,
‘Accept-Encoding‘: ‘gzip, deflate‘,
‘Accept-Language‘: ‘zh-CN,zh;q=0.8‘
}

#登陆时向服务器POST的数据
login={
‘REPORT_METHOD‘:‘xml‘,
‘ACTION‘:‘login_plaintext‘,
‘USER‘:username,
‘PASSWD‘:pwd,
‘CAPTCHA‘:‘‘
}

#重启时向路由器POST的数据
reboot={
‘EVENT‘:‘REBOOT‘
}

s=requests.session()

#登陆路由器
login=s.post(‘http://‘+ip+‘/session.cgi‘,data=login,headers=header)
print login.text

#重启路由器
reboot=s.post(‘http://‘+ip+‘/service.cgi‘,data=reboot,headers=header)
print reboot.text

执行结果如下:

第一段<RESULT>SUCCESS<RESULT>表示登陆成功

第二段<result>OK<result>表示重启成功

时间: 2024-11-05 16:10:24

利用python重启路由器的相关文章

利用POST重启路由器,一直无法实现,求帮助

本帖最后由 xinaini1986 于 2014-10-20 13:03 编辑 因为路由器经常会无法上网,重启一下路由器就可以,但每次都登陆路由器管理重启路由器很麻烦,所以想通过按键精灵POST方式重启路由器, 参考[11行代码]实现路由器重启http://bbs.anjian.com/thread-420977-1-1.html 以本论坛为例,手把手教你使用按键精灵POST登陆网页http://bbs.anjian.com/thread-286041-1-1.html 一下为我写的脚本,但由于

python 实现重启路由器

有一些服务,需要动态IP,所以我们用重启路由器的方法实现.人工重启不可选,用定时脚本执行即可.贴代码,每种路由器,提示不一样.需要路由器有telnet功能才行. #!/usr/bin/env python # -*- coding: utf-8 -*- import telnetlib HOST = "192.168.1.1" USER = "admin" PASS = "admin"   router = telnetlib.Telnet(HO

利用Python无限爆破路由器密码, 限制错误次数? 对Python无用!

image 在院子里面看到了一个没人用的路由器(ws860s),看起来像个黑科技的玩意儿,就想着进去看看,到底有什么好玩的.看到后面的标签上有web界面的地址,然后登陆进去看看,发现有密码,然后我想,路由器的密码应该都是可以reset的,然后我就用笔戳那个reset键,奇迹没有发生,原来这个reset键坏了. image image 分析过程 抓包 1.打开路由的web页面:192.168.3.1,路由器返回 image image 会得到csrf和cookie和所需要的值,这些值都要保留下来,

利用Python脚本管理Windows服务

Windows服务常用的功能就是启动服务,关闭服务,重启服务和查询服务运行状态,其中查询服务运行状态是其他三种操作的基础. 本文中提到的使用Python脚本管理Windows服务实际上是调用win32serviceutil模块,此模块来自pywin32包,此模块本身有管理服务的功能,有兴趣的可以去阅读它的部分源码. 本脚本存在的目的是为了熟练Python的语法和基本操作,Windows下有更好的命令行工具来管理服务,如sc.Powershell等.通常命令行工具的执行速度要比services.m

Windows下利用Python动态检测外网IP并发邮件给邮箱

我们知道,运营商给分配的都是动态IP,IP地址过一段时间会自己变化,这就给需要静态地址的应用带来不便,例如搭建服务器或者远程控制电脑,这种情况必须知道自己电脑的IP,利用Python可以方便的自动检测并向邮箱发送邮箱. 但是,个人网络一般都是通过路由器来上网,直接检测电脑的IP并不可行,需要得到外网的IP.内网电脑可以通过端口映射来映射到外网.检测的原理如下: 1.通过自己的电脑信息不太好获取外网IP,幸好有一些雷锋网站可以帮助我们来检测,例如 http://city.ip138.com/ip2

利用python进行数据分析--(阅读笔记一)

以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频表可以用于情感分析. 2.大多数软件是由两部分代码组成:少量需要占用大部分执行时间的代码,以及大量不经常执行的“粘合剂代码”. cython已经成为python领域中创建编译型扩展以及对接c/c++代码的一大途径. 3.在那些要求延迟性非常小的应用程序中(例如高频交易系统),为了尽最大可能地优化性能,耗费时间使用诸如C++这样更低级.更低生产率的语言进行

利用 Python yield 创建协程将异步编程同步化

在 Lua 和 Python 等脚本语言中,经常提到一个概念: 协程.也经常会有同学对协程的概念及其作用比较疑惑,本文今天就来探讨下协程的前世今生. 首先回答一个大家最关心的问题:协程的好处是什么? 通俗易懂的回答: 让原来要使用 异步 + 回调 方式写的非人类代码,可以用看似同步的方式写出来. 1.回顾同步与异步编程 同步编程即线性化编程,代码按照既定顺序执行,上一条语句执行完才会执行下一条,否则就一直等在那里. 但是许多实际操作都是CPU 密集型任务和 IO 密集型任务,比如网络请求,此时不

利用Python实现归并排序

利用python进行归并排序,摘抄自http://blog.csdn.net/minxihou/article/details/51821052 "代码真的不是一气呵成的,而且也不是想当然写出来的.可能需要反复断点中断来查看是否有逻辑错误.在理解了问题的基础下我们需要先把大体的代码框架最好先写出来,特别是主要的逻辑判断语句.但是不需要太care我循环体或者判断里面语句怎么实现,当你把这一步做到的时候能避免很多不必要的错误发生." 1 import random 2 3 def Conf

《利用python进行数据分析》

今天开始码这本书--<利用python进行数据分析>.R和python都得会用才行,这是码这本书的原因.首先按照书上说的进行安装,google下载了epd_free-7.3-1-win-x86.msi,译者建议按照作者的版本安装.