利用python重启路由器

2015/08/31 python 共 2067 字,约 6 分钟

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

 

Search

    Table of Contents