php实现登录tplink WR882N获取IP和重启的方法


Posted in PHP onJuly 20, 2016

本文实例讲述了php实现登录tplink WR882N获取IP和重启的方法。分享给大家供大家参考,具体如下:

服务器一上传大数据tplink WR882N就容易卡住, 然后上不了网. 打算在服务器定时检测, 如发现连续10次无法访问指定网站, 则自动执行重启操作(该部分未实现, 请自己添加).

gg了一圈发现只有旧版的tplink登录脚本, 试了很久没成功 ? 家里的tplink 740N倒是没问题.

于是只能直接写了, 简单的脚本如下, 可自己扩展

该脚本只适用WR882N, 其他型号未测试.

<?php
// TPLINK WR882N 管理脚本
function getContent($url)
{
  // 解悉url
  $temp = parse_url($url);
  $query = isset($temp['query']) ? $temp['query'] : '';
  $path = isset($temp['path']) ? $temp['path'] : '/';
  $header = array (
    "POST {$path}?{$query} HTTP/1.1",
    "Host: {$temp['host']}",
    "Content-Type: text/xml; charset=utf-8",
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Cookie: Authorization=Basic ' . base64_encode("admin:admin"),  // 注意这里的cookie认证字符串
    "Referer: http://{$temp['host']}/",
    'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)',
    "Content-length: 380",
    "Connection: Close"
  );
  $curl = curl_init(); // 启动一个CURL会话
  curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
  curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //设置头信息的地方
  curl_setopt($curl, CURLOPT_TIMEOUT, 60); // 设置超时限制防止死循环
  curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
  $content = curl_exec($curl); // 执行操作
  curl_close($curl);
  return $content;
}
function getIp(){
  $content = getContent("http://192.168.1.1/userRpm/StatusRpm.htm");
  preg_match('/wanPara=new Array\((.+?)<\/script>/s',$content,$all);
  $ip = "0";
  if(!empty($all[1])){
    $data = trim($all[1]);
    $data = str_replace("\r\n","",$data);
    $data = explode(",",$data);
    $ip = str_replace('"','',$data[2]);
    $ip = trim($ip);
  }
  return $ip;
}
function reboot(){
  $url = "http://192.168.1.1/userRpm/SysRebootRpm.htm?Reboot=%D6%D8%C6%F4%C2%B7%D3%C9%C6%F7";
  getContent($url);
}
$info = getIp();
echo $info;

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
简单的PHP图片上传程序
Mar 27 PHP
单点登录 Ucenter示例分析
Oct 29 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
Apr 09 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 PHP
thinkphp的URL路由规则与配置实例
Nov 26 PHP
PHP生成RSS文件类实例
Dec 05 PHP
PDO防注入原理分析以及注意事项
Feb 25 PHP
PHP获取远程图片并保存到本地的方法
May 12 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
May 27 PHP
PHP实现文件上传功能实例代码
May 18 PHP
PHP实现微信小程序人脸识别刷脸登录功能
May 24 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
PHP的AES加密算法完整实例
Jul 20 #PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 #PHP
PHP简单日历实现方法
Jul 20 #PHP
分析PHP中单双引号的误区和双引号小隐患
Jul 19 #PHP
PHP实现数组array转换成xml的方法
Jul 19 #PHP
smarty循环嵌套用法示例分析
Jul 19 #PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 #PHP
You might like
PHP MVC模式在网站架构中的实现分析
2010/03/04 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
Use Word to Search for Files
2007/06/15 Javascript
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
Vue学习之路之登录注册实例代码
2017/07/06 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
python处理json数据中的中文
2014/03/06 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
查看keras的默认backend实现方式
2020/06/19 Python
python redis存入字典序列化存储教程
2020/07/16 Python
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
高校毕业生登记表自我鉴定
2013/11/03 职场文书
办理暂住证介绍信
2014/01/11 职场文书
搞笑征婚广告词
2014/03/17 职场文书
模特大赛策划方案
2014/05/28 职场文书
计划生育标语
2014/06/23 职场文书
个人四风问题整改措施
2014/10/24 职场文书
校本课程教学计划
2015/01/19 职场文书
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python