Maison >php教程 >PHP开发 >Comment implémenter la connexion PHP au tplink WR882N pour obtenir l'IP et redémarrer

Comment implémenter la connexion PHP au tplink WR882N pour obtenir l'IP et redémarrer

高洛峰
高洛峰original
2016-12-28 16:20:332175parcourir

L'exemple de cet article décrit la méthode PHP pour se connecter à tplink WR882N pour obtenir l'IP et redémarrer. Je le partage avec vous pour votre référence. Les détails sont les suivants :

Dès que le serveur télécharge du Big Data, le tplink WR882N se bloque facilement et ne peut alors pas accéder à Internet. Nous prévoyons de vérifier le serveur régulièrement. . Si nous constatons que nous ne pouvons pas accéder au site Web spécifié 10 fois consécutives, exécutez automatiquement l'opération de redémarrage (cette partie n'est pas implémentée, veuillez l'ajouter vous-même

Après avoir cherché, j'ai trouvé qu'il y en avait). uniquement l'ancienne version du script de connexion tplink. Je l'ai essayé pendant longtemps sans succès – le tplink 740N à la maison n'a aucun problème.

Je ne peux donc l'écrire que directement. Le script simple est le suivant. peut être étendu par vous-même

Ce script ne convient qu'au WR882N et les autres modèles n'ont pas été testés.

<?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;

J'espère que cet article sera utile à tous ceux qui sont aidés par la programmation PHP.

Pour plus d'articles sur la façon de vous connecter au tplink WR882N pour obtenir une IP et redémarrer avec PHP, veuillez faire attention au site Web chinois de PHP !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn