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 相关文章推荐
一个没有MYSQL数据库支持的简易留言本的编写
Oct 09 PHP
php 日期时间处理函数小结
Dec 18 PHP
php树型类实例
Dec 05 PHP
php实现分页显示
Nov 03 PHP
PHP实现文件上传与下载实例与总结
Mar 13 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
Yii框架分页实现方法详解
May 20 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
PHP-FPM 的管理和配置详解
Feb 17 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
PHP数组与字符串互相转换实例
May 05 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
德生1994机评
2021/03/02 无线电
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
PHP二维数组去重算法
2016/12/17 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
如何在PHP中生成随机数
2020/06/04 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
2016/05/19 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
python十进制转二进制的详解
2020/02/07 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
项目开发计划书
2014/01/09 职场文书
简历里的自我评价范文
2014/02/24 职场文书
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
2015年个人现实表现材料
2014/12/10 职场文书
2015年会计个人工作总结
2015/04/02 职场文书