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 相关文章推荐
PHP4实际应用经验篇(1)
Oct 09 PHP
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
php中用于检测一个地理IP地址是否可用的代码
Feb 19 PHP
php include类文件超时问题处理
Feb 06 PHP
Smarty最简单实现列表奇偶变色的方法
Jul 01 PHP
PHP magento后台无法登录问题解决方法
Nov 24 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 PHP
PHP微信发送推送消息乱码的解决方法
Feb 28 PHP
mongodb和php的用法详解
Mar 25 PHP
PHP code 验证码生成类定义和简单使用示例
May 27 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的explode和implode的使用说明
2011/07/17 PHP
thinkphp缓存技术详解
2014/12/09 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
js 通用订单代码
2013/12/23 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
python格式化字符串实例总结
2014/09/28 Python
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
Django模板Templates使用方法详解
2019/07/19 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
Python reques接口测试框架实现代码
2020/07/28 Python
python中的yield from语法快速学习
2020/11/06 Python
音乐学个人的自荐书范文
2013/11/26 职场文书
大学生工作推荐信范文
2013/12/02 职场文书
石油大学毕业生自荐信
2014/01/28 职场文书
小学综合实践活动总结
2014/07/07 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
自查自纠整改报告
2014/11/06 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
文员岗位职责
2015/02/04 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
MySQL 开窗函数
2022/02/15 MySQL