php实现登录tplink WR882N获取IP和重启的方法
本文实例讲述了php实现登录tplinkWR882N获取IP和重启的方法。分享给大家供大家参考,具体如下:
服务器一上传大数据tplinkWR882N就容易卡住,然后上不了网.打算在服务器定时检测,如发现连续10次无法访问指定网站,则自动执行重启操作(该部分未实现,请自己添加).
gg了一圈发现只有旧版的tplink登录脚本,试了很久没成功–家里的tplink740N倒是没问题.
于是只能直接写了,简单的脚本如下,可自己扩展
该脚本只适用WR882N,其他型号未测试.
<?php //TPLINKWR882N管理脚本 functiongetContent($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;MSIE7.0;WindowsNT5.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; } functiongetIp(){ $content=getContent("http://192.168.1.1/userRpm/StatusRpm.htm"); preg_match('/wanPara=newArray\((.+?)<\/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; } functionreboot(){ $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相关内容感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《phpcurl用法总结》、《phpsocket用法总结》、《php正则表达式用法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数学运算技巧总结》、《php面向对象程序设计入门教程》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。