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中在数据库中保存Checkbox数据(1)
Oct 09 PHP
php面向对象全攻略 (七) 继承性
Sep 30 PHP
PHP递归算法的详细示例分析
Feb 19 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
php使用pack处理二进制文件的方法
Jul 03 PHP
2个Codeigniter文件批量上传控制器写法例子
Jul 25 PHP
php查看网页源代码的方法
Mar 13 PHP
php超快高效率统计大文件行数
Jul 05 PHP
PHP的swoole扩展安装方法详细教程
May 18 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
Nov 14 PHP
PHP经典实用正则表达式小结
May 04 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实现登陆验证码(类似条行码状)
2006/10/09 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
php导出CSV抽象类实例
2014/09/24 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
php命令行模式代码实例详解
2021/02/26 PHP
Javascript 获取链接(url)参数的方法
2009/02/15 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
python中的字典使用分享
2016/07/31 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
django 读取图片到页面实例
2020/03/27 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
2020/07/03 Python
python下载的库包存放路径
2020/07/27 Python
前端实现打印图像功能
2019/08/27 HTML / CSS
一道写SQL的面试题和答案
2013/11/19 面试题
教师作风整改措施思想汇报
2014/10/12 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python
MyBatis 动态SQL全面详解
2021/10/05 MySQL
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server
介绍一下28个JS常用数组方法
2022/05/06 Javascript