[原创]linux下利用php自动重启路由器(tp-link:WR841N)
家里运行了一台pc机, 当做服务器用, 路由器是tp-link的wr841n, 平时挂着svn nginx samba mysql cacti transmission...等 因为网络还不错, 是对等网络, 上传下载都能达到270k, 所以一直挂着pt, 24*7的...
应该是路由器压力比较大, 经常跑死, 所以就想着定时启动下.
好了, 直接贴代码:
//路由器地址
$url = 'http://192.168.1.1';
//重启路由器的地址
$rurl = $url . '/userRpm/SysRebootRpm.htm?';
//用户密码
$username = '换成你的用户';
$password = '换成你的密码';
//重启时需要的参数, 其实Reboot等于什么都可以的
$get_fields = array(
'Reboot' => '%D6%D8%C6%F4%C2%B7%D3%C9%C6%F7',
);
//获取curl句柄 php需要开启curl扩展
$ch = curl_init($url);
//Basic认证
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $username.':'.$password);
//不输出头部
curl_setopt($ch, CURLOPT_HEADER, 0);
//curl_exec获取到的内容不直接输出, 而是返回
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//2013-09-26更新: 伪造HTTP_REFERER, 解决新固件提醒You have no authority to access this device!的问题
curl_setopt($ch, CURLOPT_REFERER, 'http://192.168.1.1/userRpm/SysRebootRpm.htm');
//请求重启路由器的地址 传参 进行重启
curl_setopt($ch, CURLOPT_URL, $rurl.http_build_query($get_fields));
//释放资源
curl_exec($ch);
curl_close($ch);
保存到一个php文件, 放到定时, 比如明天早上1点:
crontab -e
1 1 * * * /usr/bin/php /data/shell/r.php
好, 大功告成, 其它路由器可做相关修改, 不过貌似我这个款路由器很多人用...