php linux重新写路由器,通过php脚本重启路由器

最近办公室的路由器,工作时间一长,就容易出现连不上的问题,总是需要去手动重启一下才能恢复正常。本来想在路由器中设置一下每天定时自动重启的,结果发现,压根没有这个功能。索性,写个脚本来实现这个目的。

首先你得登录进路由器吧,所以程序的核心就是模拟登录,这个完成了,基本目的就达到了。

路由器对账号和密码采用base64编码的方式,所以,最开始我是这样实现的。$authorization = 'Authorization='."Basic ".base64_encode("admin:".$password);

把这个东西写入到请求文件头,就可以登录。

后来,我发现curl中本身就有这个几个属性,分别是CURLOPT_HTTPAUTH和CURLOPT_USERPWD,所以根本就不用去手动的完成base64编码,直接写在curl中就好了,简单明了。curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_BASIC);

curl_setopt($ch,CURLOPT_USERPWD,"{$username}:{$password}");

这样,模拟登录的需求就实现了。

完整的实现代码如下:function router_login($url) {

global $username, $password;

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_HTTPGET, 1);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");

curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_BASIC);

curl_setopt($ch,CURLOPT_USERPWD,"{$username}:{$password}");

curl_setopt($ch, CURLOPT_ENCODING, 'gzip');

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 20);

$result = curl_exec($ch);

curl_close($ch);

if($result === FALSE) {

return false;

}

return $result;

}

接下来就是通过请求如下的url来重启路由了。$url = http://{$host}/userRpm/SysRebootRpm.htm?Reboot=重启路由器

这样,整个需求就实现了。

当然,到这里,还是要手动来运行该脚本。下篇文章将会介绍配置自动定时运行脚本,实现重启。

本文完~

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

打赏支持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值