利用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>表示重啟成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM