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调用三种数据库的方法(1)
Oct 09 PHP
php遍历目录viewDir函数
Dec 15 PHP
flash用php连接数据库的代码
Apr 21 PHP
PHP session会话的安全性分析
Sep 08 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
Jan 07 PHP
重新认识php array_merge函数
Aug 31 PHP
php实现获取及设置用户访问页面语言类
Sep 24 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php递归删除目录与文件的方法
Jan 30 PHP
php多重接口的实现方法
Jun 20 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 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
967 个函式
2006/10/09 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
python检测是文件还是目录的方法
2015/07/03 Python
Python切片操作深入详解
2018/07/27 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
Python同时处理多个异常的方法
2020/07/28 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
铭立家具面试题
2012/12/06 面试题
电气技术员岗位职责
2013/11/19 职场文书
师范学院教师自荐书
2014/01/31 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
2015团员个人年度总结
2015/11/24 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang