php實現登錄tplink WR882N獲取IP和重啟的方法
來源:易賢網 閱讀:1371 次 日期:2016-08-12 14:28:54
溫馨提示:易賢網小編為您整理了“php實現登錄tplink WR882N獲取IP和重啟的方法”,方便廣大網友查閱!

本文實例講述了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程序設計有所幫助。

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
未满十八18勿进黄网站免费看