本文實例講述了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程序設計有所幫助。
新聞熱點
疑難解答
圖片精選