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维护文件系统
Oct 09 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
input file获得文件根目录简单实现
Apr 26 PHP
浅谈discuz密码加密的方式
May 22 PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
Feb 03 PHP
ThinkPHP中order()使用方法详解
Apr 19 PHP
使用PHP免费发送定时短信的实例
Oct 24 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 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实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
javascript 简练的几个函数
2009/08/29 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
JavaScript利用Date实现简单的倒计时实例
2017/01/12 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
实例讲解Python中的私有属性
2014/08/21 Python
python3中str(字符串)的使用教程
2017/03/23 Python
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
用python写爬虫简单吗
2020/07/28 Python
如何用python免费看美剧
2020/08/11 Python
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
工作表现评语
2014/01/19 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
应届毕业生求职简历自我评价
2015/03/02 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
python实现简单反弹球游戏
2021/04/12 Python
Python实现为PDF去除水印的示例代码
2022/04/03 Python