php實現(xiàn)登錄tplink WR882N獲取IP和重啟的方法
本文實例講述了php實現(xiàn)登錄tplink WR882N獲取IP和重啟的方法。分享給大家供大家參考,具體如下:
服務(wù)器一上傳大數(shù)據(jù)tplink WR882N就容易卡住, 然后上不了網(wǎng). 打算在服務(wù)器定時檢測, 如發(fā)現(xiàn)連續(xù)10次無法訪問指定網(wǎng)站, 則自動執(zhí)行重啟操作(該部分未實現(xiàn), 請自己添加).
gg了一圈發(fā)現(xiàn)只有舊版的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認(rèn)證字符串
"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); //設(shè)置頭信息的地方
curl_setopt($curl, CURLOPT_TIMEOUT, 60); // 設(shè)置超時限制防止死循環(huán)
curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區(qū)域內(nèi)容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回
$content = curl_exec($curl); // 執(zhí)行操作
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;
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php curl用法總結(jié)》、《php socket用法總結(jié)》、《php正則表達式用法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)學(xué)運算技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
php關(guān)于array_multisort多維數(shù)組排序的使用說明
對于PHP語言中的多維數(shù)組排序時最為復(fù)雜的一個排序方式。我們在實際編碼中將會用到PHP函數(shù)array_multisort()來實現(xiàn)這一復(fù)雜的排序。2011-01-01
PHP導(dǎo)出MySQL數(shù)據(jù)到Excel文件(fputcsv)
經(jīng)常會碰到需要從數(shù)據(jù)庫中導(dǎo)出數(shù)據(jù)到Excel文件,用一些開源的類庫,比如PHPExcel,確實比較容易實現(xiàn),但對大量數(shù)據(jù)的支持很不好,很容易到達PHP內(nèi)存使用上限。2011-07-07
PHP編程過程中需要了解的this,self,parent的區(qū)別
this是指向?qū)ο髮嵗囊粋€指針,在實例化的時候來確定指向;self是對類本身的一個引用,一般用來指向類中的靜態(tài)變量;parent是對父類的引用,一般使用parent來調(diào)用父類的構(gòu)造函數(shù)。2009-12-12
PHP實現(xiàn)JS中escape與unescape的方法
這篇文章主要介紹了PHP實現(xiàn)JS中escape與unescape的方法,通過json_encode和json_decode方法實現(xiàn)JS中escape與unescape函數(shù)的功能,需要的朋友可以參考下2016-07-07
PHPWind與Discuz截取字符函數(shù)substrs與cutstr性能比較
PHP性能優(yōu)化系列第四期實戰(zhàn)篇,如何使用PEAR Benchmark類工具獲取函數(shù)執(zhí)行性能,這里以PHPWind與Discuz!兩個社區(qū)論壇的截取字符函數(shù)substrs與cutstr為例,分析兩個函數(shù)的執(zhí)行性能情況2011-12-12
php中判斷字符串是否全是中文或含有中文的實現(xiàn)代碼
php中判斷字符串是否全是中文或含有中文的實現(xiàn)代碼,主要是利用正則匹配中文判定。2011-09-09

