码迷,mamicode.com
首页 > 编程语言 > 详细

利用python重启路由器

时间:2015-08-31 13:08:57      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

     家里用的是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>表示重启成功

 

利用python重启路由器

标签:

原文地址:http://www.cnblogs.com/id404/p/4772722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!