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测试硬盘写入速度示例
Jan 27 PHP
Laravel框架表单验证详解
Sep 04 PHP
Linux下PHP安装mcrypt扩展模块笔记
Sep 10 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
php实现的任意进制互转类分享
Jul 07 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
微信接口生成带参数的二维码
Jul 31 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
PHP远程连接oracle数据库操作实现方法图文详解
Apr 11 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 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
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
Yii框架安装简明教程
2020/05/15 PHP
PHP7修改的函数
2021/03/09 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
对angular4子路由&amp;辅助路由详解
2018/10/09 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
python optparse模块使用实例
2015/04/09 Python
Python面向对象特殊成员
2017/04/24 Python
Python之re操作方法(详解)
2017/06/14 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
英国足球店:UK Soccer Shop
2017/11/19 全球购物
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
企划经理的岗位职责
2013/11/17 职场文书
初中语文教学反思
2014/02/02 职场文书
银行奉献演讲稿
2014/09/16 职场文书
写给父母的感谢信
2015/01/22 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript