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 相关文章推荐
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
解析PHP 5.5 新特性
Jul 02 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
ThinkPHP函数详解之M方法和R方法
Sep 10 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
PHP简单遍历对象示例
Sep 28 PHP
mac下多个php版本快速切换的方法
Oct 09 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
PHP生成随机数的方法总结
Mar 01 PHP
如何在centos8自定义目录安装php7.3
Nov 28 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 PHP
PHP7 整型处理机制修改
Mar 09 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+ACCESS 文章管理程序代码
2010/06/21 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
js left,right,mid函数
2008/06/10 Javascript
取得窗口大小 兼容所有浏览器的js代码
2011/08/09 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
require.js中的define函数详解
2017/07/10 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
详解Vue 项目中的几个实用组件(ts)
2019/10/29 Javascript
用Pygal绘制直方图代码示例
2017/12/07 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
python中id函数运行方式
2020/07/03 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
阿尔卡特(中国)的面试题目
2014/08/20 面试题
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
医药销售求职信范文
2014/02/01 职场文书
班级旅游计划书
2014/05/03 职场文书
租房协议书样本
2014/08/20 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
学术会议通知范文
2015/04/15 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python