Friday, September 16, 2011

autoreboot my tp-link router 320g+

~/myworksource/routerautorestart/autorebootrouter.html
 1 自动重启我的路由器,家里的无线路由是tp-link 320G+,当开机时间过长的话就会断网
 2 
 3 于是就想让它过一定的时间自动重启.
 4 
 5 思路很简单:就是用python的urllib库获取网页然后提交特定的命令就可以了
 6 
 7 于是就上网搜索了搜索,找到了如下的代码.
 8 
 9 使用python的示例如下
10 
11 import urllib
12 
13 print urllib.urlopen("http://admin:admin @ 192.168.1.1 /userRpm/MenuRpm.htm?MainID=0&SubID=0 ").read()
14 
15 可是对html一点基础也没有,只有上网继续搜索了,在cpyug的邮件列表里找到2个比较
16 实用的例子
17 
18 1. 使用python的
19 site_root = 'http://192.168.1.1'
20 username = 'admin'
21 password = '123456'
22 
23 passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
24 passman.add_password(None, site_root, username, password)
25 
26 authhandler = urllib2.HTTPBasicAuthHandler(passman)
27 
28 opener = urllib2.build_opener(authhandler)
29 
30 urllib2.install_opener(opener)
31 
32 pagehandle = urllib2.urlopen(site_root)
33 
34 2,使用 wget的
35 
36 wget --http-use=admin --http-password=admin http://192.168.1.1/userRpm/SysRebootRpm.htm?Reboot=重启路由器 -O /dev/null
37 
38 这个好用,不用写python了直接使用shell就可以完成任务了,然后自己做个crontab,
39 让它定时执行就ok
40 
41 完整的代码如下
42 
43 #!/bin/bash
44 
45 wget --http-use=admin --http-password=admin http://192.168.1.1/userRpm/SysRebootRpm.htm?Reboot=重启路由器 -O /dev/null

No comments: