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版
Oct 09 PHP
PHP内核介绍及扩展开发指南―基础知识
Sep 11 PHP
介绍一些PHP判断变量的函数
Apr 24 PHP
PHP中判断变量为空的几种方法小结
Nov 12 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
Mar 05 PHP
PHP使用MPDF类生成PDF的方法
Dec 08 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
Jun 07 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 PHP
php+laravel依赖注入知识点总结
Nov 04 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把小数转成整数3种方法
2014/06/30 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
input标签内容改变的触发事件介绍
2014/06/18 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
小程序自定义日历效果
2018/12/29 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
跟老齐学Python之??碌某?? target=
2014/09/12 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
python实现微信远程控制电脑
2018/02/22 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
Pygame框架实现飞机大战
2020/08/07 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
德国购买健身器材:AsVIVA
2017/08/09 全球购物
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
体验完美剃须:The Art of Shaving
2018/08/06 全球购物
什么是servlet
2012/05/08 面试题
会计主管岗位职责范文
2013/11/08 职场文书
上班迟到检讨书
2014/01/10 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
2015年财务工作总结范文
2015/03/31 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
python实现简易自习室座位预约系统
2021/06/30 Python