首页 > 编程语言 >PHP解析WAYOS 路由 JSON数据

PHP解析WAYOS 路由 JSON数据

时间:2022-11-20 14:47:28浏览次数:46  
标签:ch setopt WAYOS remainSec JSON curl PHP data CURLOPT

<?php
@header("content-type:text/html;charset=UTF-8");
if(isset($_REQUEST['p'])){
    $p = $_REQUEST ['p'];
}else{
    $p = 's';
}
if(isset($_REQUEST['d'])){
    $d = $_REQUEST ['d'];
}else{
    $d = 't';
}
//登陆函数
$urlQian  = 'http://XXXXXXXXXXXXX:8081';  //账户信息地址 
$user     = 'XXXXXXXX';                   //账户信息
$password = 'XXXXXX';                     //账户信息                  
$postUrl  = $urlQian.'/login.cgi';
function json_to_array($data){
    $data = json_decode($data,JSON_UNESCAPED_UNICODE);
    return $data;
}
function array_to_json($data){
    $data = json_encode($data,JSON_UNESCAPED_UNICODE);
    return $data;
}
function Sec2Time($allSec){
    $remainSec = (int)$allSec;
    $humanTime = '';
    if($remainSec > 86400) {
        $days = (int)($remainSec / 86400);
        $remainSec = $remainSec % 86400;
        $humanTime .= $days.'天';
    }
    if($remainSec > 3600) {
        $hours = (int)($remainSec / 3600);
        $remainSec = $remainSec % 3600;
        $humanTime .= $hours.'时';
    }
    if($remainSec > 60) {
        $minutes = (int)($remainSec / 60);
        $remainSec = $remainSec % 60;
        $humanTime .= $minutes.'分';
    }
    if($remainSec > 0) {
        $seconds = $remainSec;
        $humanTime .= $seconds.'秒';
    }
    return $humanTime;
}
function http_json_data($postUrl, $curlPost, $cookiesState) {
    if (empty($postUrl) || empty($curlPost)) {
        return false;
    }
    $cookie_file = dirname(__FILE__).'/cookie.txt';
    $ch = curl_init();
    $header = array();
    $header[] = 'content-type: application/x-www-form-urlencoded';
    $header[] = 'charset=UTF-8';
    curl_setopt($ch, CURLOPT_URL,$postUrl);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
    if ($cookiesState==1){
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    }else{
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    }
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $data = curl_exec($ch);
    $data = iconv('gbk','utf-8', $data);
    curl_close($ch);
    return $data;
}
function lidData($urlQian,$cookiesState=0) {
    $postUrl=$urlQian.'/dhcp_list.data';
    $curlPost = '_=1668761642829';
    $lidData = http_json_data($postUrl, $curlPost , $cookiesState=0);
    $lidData= json_to_array($lidData);
    return $lidData;
}

$curlPost='user='.$user.'&password='.$password.'&checkCode=&key=&Submit=%E7%99%BB++%E5%BD%95';
$login = http_json_data($postUrl, $curlPost,$cookiesState=1);  //模拟登陆
//var_dump($login);
if(strpos($login,'login.html?flag=0') !== false){
    @header("content-type:application/json;charset=UTF-8");
    echo '{"state":"0","key":"账户密码错误"}';
}elseif(strpos($login,'login.html?flag=1') !== false){
    @header("content-type:application/json;charset=UTF-8");
    echo '{"state":"0","key":"验证码错误"}';
    
}else{
    $data = lidData($urlQian,$cookiesState=0);
    //print_r($data);
    if($p == 's'){
        $n_time = array_column($data,$d);
        array_multisort($n_time,SORT_ASC,$data);
        $p='j';
        //echo $p;
    }else{
        $n_time = array_column($data,$d);
        array_multisort($n_time,SORT_DESC,$data);
        $p='s';
        //echo $p;
    }
    echo '<p align="center" style="font-size: 22px;">合计有'.sizeof($data).'台设备在线</p>';
    echo '<table border="1" style="margin:auto;table-layout:fixed;font-size:12px;height: 300px;" cellspacing="0"><tr><th>序号</th><th><a href="?d=n&p='.$p.'">名称</a></th><th><a href="?d=m&p='.$p.'">MAC地址</a></th><th><a href="?d=i&p='.$p.'">IP地址</a></th><th><a href="?d=t&p='.$p.'">在线时间</a></th></tr><tr>';

    foreach($data as $key => $val ){
        $id_num = $key +1;
        $id_num = ($id_num>9)?$id_num:'0'.$id_num;
        echo '<tr style="text-align:center;height: 30px;"><td>'.$id_num.'</td><td>'.$val['n'].'</td><td>'.$val['m'].'</td><td>'.long2ip($val['i']).'</td><td>'.Sec2Time($val['t']).'</td></tr>';
    }
    echo '</tr></table>';
}
?>

 

标签:ch,setopt,WAYOS,remainSec,JSON,curl,PHP,data,CURLOPT
From: https://www.cnblogs.com/zhouein/p/16908439.html

相关文章

  • cJson 学习笔记
    cJson学习笔记一、前言思考这么一个问题:对于不同的设备如何进行数据交换?可以考虑使用轻量级别的JSON格式。那么需要我们手写一个JSON解析器吗?这大可不必,因为已经有......
  • JsonResult
    https://github.com/dotnet/aspnetcore/blob/39f0e0b8f40b4754418f81aef0de58a9204a1fe5/src/Mvc/Mvc.Core/src/JsonResult.cs#L13//Licensedtothe.NETFoundationu......
  • PHP阶段案例之Web表单生成器 转摘的
    HP阶段案例之Web表单生成器①准备表单②定义表单生成函数效果图原码奉上 ①准备表单这里是用form.php文件来保存表单信息,通过$element元素以数组的形......
  • zblogphp GetPostList()与GetArticleList()的区别
    GetArticleList()与 GetPostList()获取文章列表的逻辑大差不差,区别在于:GetArticleList()只会查询 log_Type=0的文章,也就是只查询post_type=0的文章,返回的列表全是\P......
  • java网上商城与php网上商城比较
    java网上商城与php商城比较1.应用比较:JAVA的应用比较广泛,比如世界五百强网站,大型政府网,各大银行等网站都是基于JAVA构建。基于JAVA技术开发的商城......
  • zblogphp如何使用模板引擎Template类如何使用
    Template类的构造函数没有任何参数,所有的功能都是通过调用其成员函数实现的。$template=newTemplate();//设置模板标签.zblog内置的模板变量和sidebar都在该函数绑定......
  • zblogphp的Pagebar类如何使用
    当我们为Zblog开发的插件/模板不走系统内置的ViewXX()编辑器时,模板中就没有pagebar对象了。想用系统的Pagebar功能,但是官方文档里没有介绍该怎么使用,就只能查看源码了。......
  • PHP通过加密计算出短信验证码,无需缓存验证码
    通过加密计算出短信验证码,无需缓存验证码classXixiOtp{private$iKeeptime;//验证码有效期private$sKey;//加密的密钥private$p1Len=1;//验......
  • 日学壹技:json.load() vs json.loads()
    导读本文演示如何使用Python的json.load()和json.loads()方法从文件和字符串中读取JSON数据。使用json.load()和json.loads()方法,您可以将JSON格式的数据转......
  • fpjson使用例子【转】
    lazarusfpjson使用例子procedureTForm1.Button2Click(Sender:TObject);varjData:TJSONData;jDataArr:TJSONData;jObject:TJSONObject;jArray:TJSONA......