ホームページ >php教程 >PHP开发 >php ログインを tplink WR882N に実装して IP を取得して再起動する方法

php ログインを tplink WR882N に実装して IP を取得して再起動する方法

高洛峰
高洛峰オリジナル
2016-12-28 16:20:332172ブラウズ

この記事の例では、tplink WR882NにログインしてIPを取得し、PHPを使用して再起動する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです。

tplink WR882N は、サーバーがビッグデータをアップロードするとすぐにスタックし、その後インターネットにアクセスできなくなります。見つかった場合は、サーバーを定期的にチェックする予定です。指定した Web サイトに 10 回連続してアクセスできない場合、再起動操作が自動的に実行されます (この部分は実装されていません。自分で追加してください)

調べてみたところ、tplink は古いバージョンしかありませんでした。ログインスクリプトを長い間試してみましたが、成功しませんでした – 自宅のtplink 740Nは問題ありませんでした

なので、単純に直接書くしかありません。スクリプトは次のとおりです。自分で拡張できます

。 WR882N にのみ適しており、他のモデルはテストされていません。

<?php
// TPLINK WR882N 管理脚本
function getContent($url)
{
  // 解悉url
  $temp = parse_url($url);
  $query = isset($temp[&#39;query&#39;]) ? $temp[&#39;query&#39;] : &#39;&#39;;
  $path = isset($temp[&#39;path&#39;]) ? $temp[&#39;path&#39;] : &#39;/&#39;;
  $header = array (
    "POST {$path}?{$query} HTTP/1.1",
    "Host: {$temp[&#39;host&#39;]}",
    "Content-Type: text/xml; charset=utf-8",
    &#39;Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8&#39;,
    &#39;Cookie: Authorization=Basic &#39; . base64_encode("admin:admin"),  // 注意这里的cookie认证字符串
    "Referer: http://{$temp[&#39;host&#39;]}/",
    &#39;User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)&#39;,
    "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(&#39;/wanPara=new Array\((.+?)<\/script>/s&#39;,$content,$all);
  $ip = "0";
  if(!empty($all[1])){
    $data = trim($all[1]);
    $data = str_replace("\r\n","",$data);
    $data = explode(",",$data);
    $ip = str_replace(&#39;"&#39;,&#39;&#39;,$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 プログラミングのすべての人に役立つことを願っています。

tplink WR882N にログインして IP を取得し、PHP を再起動する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。