$v){ $temp = explode('-',$k); $sp_xl_list[$temp[1]] = $v; } $sp_qz_code = file_get_contents(__DIR__ . '/data/qz.txt', 'r'); // echo $sp_qz_code; $sp_qz_json = json_decode(substr($sp_qz_code,3),true); $sp_qz_list = []; foreach($sp_qz_json as $k=>$v){ $temp = explode('-',$k); $sp_qz_list[$temp[1]] = $v; } //-------------------------------------------- $all = fopen(__DIR__ . '/data/all.csv', 'w'); $dnx_exit = fopen(__DIR__ . '/data/dns_diff.csv', 'a'); $dnx_has_exit = get_product(__DIR__ . '/data/dns_diff.csv', 1); //----------------------------------------------------------------------------------------------------- $apikey = '80cf4f64e990b78a9fc5eb'; $url = "http://rds-api.juip.com/api/index/getList2?apikey=".$apikey; $mogu = json_decode(file_get_contents($url), true)['data']; if ($mogu) { $mogu_f = fopen(__DIR__ . '/data/mogu.csv', 'w'); mogu_getList($mogu, $mogu_f, $all); fclose($mogu_f); } $time = time(); $noce = md5(time()); $apikey = 'a478ad5aa3079bbbef3cd45e2d55d61e'; $sign = md5($time.$noce.$apikey); $url = "http://47.92.116.14:2222/api/getNodeList?agentid=admin1&ti=".$time."&nonce=".$noce."&sign=".$sign; $qiangzi = json_decode(file_get_contents($url), true)['data']; if(!empty($qiangzi)){ $qiangzi_data = get_product(__DIR__ . '/data/qiangzi.csv'); $qiangzi_f = fopen(__DIR__ . '/data/qiangzi.csv', 'w'); //写入强子文件 qiangzi_getList($qiangzi, $qiangzi_f, $all, $qiangzi_data); fclose($qiangzi_f); } // 静态 $time = time(); $noce = md5(time()); $apikey = 'a478ad5aa3079bbbef3cd45e2d55d61e'; $sign = md5($time.$noce.$apikey); $url = "http://47.92.116.14:2222/api/getNodeList?agentid=admin1&ti=".$time."&nonce=".$noce."&sign=".$sign; $qiangzi = json_decode(file_get_contents($url), true)['data']; if(!empty($qiangzi)){ $qiangzi_data = get_product(__DIR__ . '/data/qiangzijt.csv'); $qiangzi_f = fopen(__DIR__ . '/data/qiangzijt.csv', 'w'); //写入强子文件 qiangzijt_getList($qiangzi, $qiangzi_f, $all, $qiangzi_data); fclose($qiangzi_f); } $time = time(); $noce = md5(time()); $apikey = 'osoa917321hdjw'; $sign = md5($time.$noce.$apikey); $url = "http://47.92.65.184:2223/api/getNodeList?agentid=admin2&ti=".$time."&nonce=".$noce."&sign=".$sign; $xunlian = json_decode(file_get_contents($url), true)['data']; // $xunlian = false; if ($xunlian){ $xunlian_data = get_product(__DIR__ . '/data/xunlian.csv'); $xunlian_f = fopen(__DIR__ . '/data/xunlian.csv', 'w'); //写入讯连文件 xunlian_getList($xunlian, $xunlian_f, $all, $xunlian_data); fclose($xunlian_f); } $url = 'http://int.linghangadmin.com:8000/sysadmin/useradmin/lineapi_admin1.php?secretId=108006113&secretKey=87085a351a64c116df09ebc07d5781sf'; $huohu = json_decode(file_get_contents($url), true); // if(!empty($huohu)){ // $huohu_f = fopen(__DIR__ . '/data/huohu.csv', 'w'); // //写入火狐文件 // $huohu_data = get_product(__DIR__ . '/data/huohu.csv'); // huohu_getList($huohu, $huohu_f, $all,$huohu_data); // fclose($huohu_f); // } // ///动态 // $url = 'http://int.linghangsoft.net:8000/sysadmin/useradmin/lineapi_admin1.php?secretId=108006113&secretKey=87085a351a64c116df09ebc07d5781sf'; // $yunniu = json_decode(file_get_contents($url), true); // if(!empty($yunniu)){ // $yunniu_f = fopen(__DIR__ . '/data/yunniu.csv', 'w'); // //写入火狐文件 // $yunniu_data = get_product(__DIR__ . '/data/yunniu.csv'); // yunniu_getList($yunniu, $yunniu_f, $all,$yunniu_data); // fclose($yunniu_f); // } // $time = time(); // $noce = md5(time()); // $apikey = 'd50f2b2ffd421efa67df8efb96d5ff6c'; // $sign = md5($time.$noce.$apikey); // $url = "http://106.54.198.154/api/getNodeList?agentid=admin1&ti=".$time."&nonce=".$noce."&sign=".$sign; // $xingxing = json_decode(file_get_contents($url), true)['data']; // //写入星星文件 // if($xingxing){ // $xingxing_data = get_product(__DIR__ . '/data/xingxing.csv'); // $xingxing_f = fopen(__DIR__ . '/data/xingxing.csv', 'w'); // xingxing_getList($xingxing, $xingxing_f, $all, $xingxing_data); // fclose($xingxing_f); // } $jike = json_decode(file_get_contents("http://api.beikeip.com/beikeiplist/"), true)['data']; if($jike){ $jike_data = get_product(__DIR__ . '/data/jike.csv'); $jike_f = fopen(__DIR__ . '/data/jike.csv', 'w'); //写入极客文件 jike_getList($jike, $jike_f, $all, $jike_data); fclose($jike_f); } $xigua = json_decode(file_get_contents("http://api.beikeip.com/serverlistyzip/"), true)['data']; if($xigua){ $xigua_data = get_product(__DIR__ . '/data/xigua.csv'); $xigua_f = fopen(__DIR__ . '/data/xigua.csv', 'w'); //写入西瓜文件 jike_getList($xigua, $xigua_f, $all, $xigua_data, false); fclose($xigua_f); } $tiantian = json_decode(file_get_contents("https://yoyoapi.yoyoip.com/v1/areas?apiid=89&sendtime=" . time() . "&sign=" . md5('apiid=89&sendtime=' . time() . 'NFeK72yYXmPiGR86YeMCBRTWDxXkrQsd')), true)['data']; if($tiantian){ $tiantian_data = get_product(__DIR__ . '/data/tiantian.csv'); $tiantian_f = fopen(__DIR__ . '/data/tiantian.csv', 'w'); //写入天天文件 tiantian_getList($tiantian, $tiantian_f, $all, $tiantian_data, '天天'); fclose($tiantian_f); } $xianfeng = json_decode(file_get_contents("http://apiserver.pptp.biz/Apiserver/getserver"), true); if($xianfeng){ $xianfeng_data = get_product(__DIR__ . '/data/xianfeng.csv'); $xianfeng_f = fopen(__DIR__ . '/data/xianfeng.csv', 'w'); //写入先锋文件 xianfeng_getList($xianfeng, $xianfeng_f, $all, $xianfeng_data); fclose($xianfeng_f); } // $jinrui_data = get_product(__DIR__ . '/data/jinrui.csv'); // $jinrui_f = fopen(__DIR__ . '/data/jinrui.csv', 'w'); // $jinrui = file_get_contents("http://pptp.zhekou5.com/api/getnas.php"); // //写入金瑞文件 // jinrui_getList($jinrui, $jinrui_f, $all, $jinrui_data); // fclose($jinrui_f); $laoying = json_decode(file_get_contents("http://diqu.pptp.pro:8070/sapi/getroslist"), true)['list']; if($laoying){ $laoying_data = get_product(__DIR__ . '/data/laoying.csv'); $laoying_f = fopen(__DIR__ . '/data/laoying.csv', 'w'); //写入老鹰文件 laoying_getList($laoying, $laoying_f, $all, $laoying_data); fclose($laoying_f); } sleep(5); auto_format_list(); //强子服务器解析规则 function qiangzi_getList($data, &$file, &$all, $exit) { global $dnx_exit, $dnx_has_exit,$sp_qz_list; $online = ['故障', '正常', '紧张','繁忙']; $status = ['正常', '拥挤', '超载']; $key = ''; $list1 = []; $province_record = []; foreach ($data as $info) { $record = []; $record['name'] = '强子'; if ($info['areaname'] == '静态线路') { continue; } //如果存在 不为空 则 $city_name = explode('-',$info['name']); if (strpos($city_name[1], '混播') !== false) { //如果存在 不为空 则 if (!in_array( $city_name[1], $province_record)) { $record['city'] = $city_name[1]; $province_record[] = $city_name[1]; $key = $record['city']; $list1[$key][] = $record; } } else { //如果存在 不为空 则 if (!in_array( $city_name[0], $province_record)) { $record['city'] = $city_name[0]; $province_record[] = $city_name[0]; $key = $record['city']; $list1[$key][] = $record; } $key = $city_name[0]; } $record['city'] = $city_name[1]; $record['supply'] = isset($city_name[2]) ? $city_name[2] : ''; $daikuan = $info['bandwidth']; $record['ip'] = $info['name2']; $record['daikuan'] = $daikuan; $record['onlineuser'] = ''; $record['maxuser'] = ''; $record['online'] = $online[$info['status']]; $record['status'] = $sp_qz_list[$record['city']]; if(!empty($info['host2'])){ $nas_list = explode(',',$info['host2']); foreach ($nas_list as $nas) { $record['nasname'] = trim($nas); if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, ['强子', explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } $list1[$key][] = $record; } } $record['nasname'] = trim($info['host']); if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, ['强子', explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } $list1[$key][] = $record; } foreach ($list1 as $val) { foreach ($val as $net_data) { fputcsv($file, $net_data); fputcsv($all, $net_data); } } } //强子静态服务器解析规则 function qiangzijt_getList($data, &$file, &$all, $exit) { global $dnx_exit, $dnx_has_exit,$sp_qz_list; $online = ['故障', '正常', '紧张','繁忙']; $status = ['正常', '拥挤', '超载']; $key = ''; $list1 = []; $province_record = []; foreach ($data as $info) { $record = []; $record['name'] = '强子静态'; if ($info['areaname'] != '静态线路') { continue; } //如果存在 不为空 则 $city_name = explode('-',$info['name']); if (strpos($city_name[1], '混播') !== false) { //如果存在 不为空 则 if (!in_array( $city_name[1], $province_record)) { $record['city'] = $city_name[1]; $province_record[] = $city_name[1]; $key = $record['city']; $list1[$key][] = $record; } } else { //如果存在 不为空 则 if (!in_array( $city_name[1], $province_record)) { $record['city'] = $city_name[1]; $province_record[] = $city_name[1]; $key = $record['city']; $list1[$key][] = $record; } $key = $city_name[1]; } $record['city'] = $city_name[2]; $record['supply'] = isset($city_name[2]) ? $city_name[2] : ''; $daikuan = $info['bandwidth']; $record['ip'] = $info['name2']; $record['daikuan'] = $daikuan; $record['onlineuser'] = ''; $record['maxuser'] = ''; $record['online'] = $online[$info['status']]; $record['status'] = $sp_qz_list[$record['city']]; if(!empty($info['host2'])){ $nas_list = explode(',',$info['host2']); foreach ($nas_list as $nas) { $record['nasname'] = trim($nas); if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, ['强子', explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } $list1[$key][] = $record; } } $record['nasname'] = trim($info['host']); if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, ['强子', explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } $list1[$key][] = $record; } foreach ($list1 as $val) { foreach ($val as $net_data) { fputcsv($file, $net_data); fputcsv($all, $net_data); } } } //火狐服务器解析规则 function huohu_getList($data, &$file, &$all, $exit) { global $dnx_exit, $dnx_has_exit; $online = ['故障', '正常','故障']; $list = []; $province_record = []; foreach ($data as $info){ $record = []; $record['name'] = '火狐静态'; //如果存在 不为空 则 if (!in_array( $info['province'], $province_record)) { $record['city'] = $info['province']; $province_record[] = $info['province']; $key = $record['city']; $list[$key][] = $record; } //匹配所有的城市 //每一个城市再解析获取城市和剩余数量 $record['city'] = $info['city']; $record['supply'] = $info['displayname']; $record['ip'] = ''; $record['daikuan'] = ''; $record['onlineuser'] = ''; $record['maxuser'] = ''; $record['online'] = $online[$info['status']]; $record['status'] = ''; $record['nasname'] = $info['ip']; $list[$key][] = $record; if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, ['火狐', explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } } foreach ($list as $val) { foreach ($val as $net_data) { fputcsv($file, $net_data); fputcsv($all, $net_data); } } } //火狐服务器解析规则 function yunniu_getList($data, &$file, &$all, $exit) { global $dnx_exit, $dnx_has_exit; $online = ['故障', '正常','故障']; $list = []; $province_record = []; foreach ($data as $info){ $record = []; $record['name'] = '云牛'; //如果存在 不为空 则 if (!in_array( $info['province'], $province_record)) { $record['city'] = $info['province']; $province_record[] = $info['province']; $key = $record['city']; $list[$key][] = $record; } //匹配所有的城市 //每一个城市再解析获取城市和剩余数量 $record['city'] = $info['city']; $record['supply'] = $info['displayname']; $record['ip'] = ''; $record['daikuan'] = ''; $record['onlineuser'] = ''; $record['maxuser'] = ''; $record['online'] = $online[$info['status']]; $record['status'] = ''; $record['nasname'] = $info['ip']; $list[$key][] = $record; if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, ['火狐', explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } } foreach ($list as $val) { foreach ($val as $net_data) { fputcsv($file, $net_data); fputcsv($all, $net_data); } } } //星星服务器解析 function xingxing_getList($data, &$file, &$all, $exit) { global $dnx_exit, $dnx_has_exit; $online = ['故障', '正常', '正常']; $province_record = []; $key = ''; $list1 = []; //省会 $province = ['黑龙', '内蒙']; $citys = ['北京', '上海', '天津', '重庆']; foreach ($data as $info) { $record = []; $record['name'] = '星星'; $province_detail = mb_substr($info['name'], 0, 2); if (in_array($province_detail, $province)) { $province_detail = mb_substr($info['name'], 0, 3); $info['name'] = mb_substr($info['name'], 3); } elseif (!in_array($province_detail, $citys)) { $info['name'] = mb_substr($info['name'], 2); } if (!in_array($province_detail, $province_record)) { $record['city'] = $province_detail; $province_record[] = $province_detail; $key = $province_detail; $list1[$key][] = $record; } $city_ex = explode('电信', $info['name']); if (strpos($info['name'], '电信') !== false) { $record['city'] = $city_ex[0] . ($city_ex[1] ?? ''); $record['supply'] = '电信'; } elseif (strpos($info['name'], '联通') !== false) { $record['city'] = $city_ex[0] . ($city_ex[1] ?? ''); $record['supply'] = '联通'; } elseif (strpos($info['name'], '移动') !== false) { $record['city'] = $city_ex[0] . ($city_ex[1] ?? ''); $record['supply'] = '移动'; } else { $record['city'] = $info['name']; $record['supply'] = '电信/联通'; } $record['ip'] = strpos($info['name2'], '-') ? explode('-', $info['name2'])[1] : $info['name2']; $record['daikuan'] = $info['bandwidth']; $record['onlineuser'] = ''; $record['maxuser'] = ''; $record['online'] = ($info['status'] == 0) ? '故障' : '正常'; $record['status'] = ($info['status'] == 1) ? '正常' : '紧张';; $record['nasname'] = $info['host']; if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, ['星星', explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } $key = $province_detail; $list1[$key][] = $record; } foreach ($list1 as $val) { foreach ($val as $net_data) { fputcsv($file, $net_data); fputcsv($all, $net_data); } } } //极客服务器解析 function jike_getList($data, &$file, &$all, $exit, $is_jike = true) { global $dnx_exit, $dnx_has_exit; $status = ['yes' => '正常', 'no' => '故障']; $key = ''; $list1 = []; $province_record = []; foreach ($data as $info) { $record = []; if($is_jike){ $record['name'] = '极客'; } else { $record['name'] = '西瓜'; } //如果存在 不为空 则 if (!in_array($info['province'], $province_record)) { $record['city'] = $info['province']; $province_record[] = $info['province']; $key = $record['city']; $list1[$key][] = $record; } if (empty($info['city'])) { $record['city'] = '全国混播'; } else { $record['city'] = $info['city']; } $record['supply'] = $info['isp']; $record['ip'] = ''; $record['daikuan'] = ''; $record['onlineuser'] = ''; $record['maxuser'] = ''; $record['online'] = $status[$info['status']]; $record['status'] = ''; $record['nasname'] = $info['domain']; if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, [$record['name'], explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } $list1[$key][] = $record; } foreach ($list1 as $val) { foreach ($val as $net_data) { fputcsv($file, $net_data); fputcsv($all, $net_data); } } } //天天服务器解析规则 function tiantian_getList($data, &$file, &$all, $exit, $product_name) { global $dnx_exit, $dnx_has_exit; $status = ['故障', '正常']; $key = ''; $list1 = []; foreach ($data as $info) { $record = []; $record['name'] = $product_name; $record['city'] = $info['name']; $key = $record['city']; $list1[$key][] = $record; foreach ($info['areas'] as $v) { if (strpos($v['name'], '电信') !== false) { $record['city'] = explode('电信', $v['name'])[0]; $record['supply'] = '电信'; } elseif (strpos($v['name'], '联通') !== false) { $record['city'] = explode('联通', $v['name'])[0]; $record['supply'] = '联通'; } elseif (strpos($v['name'], '移动') !== false) { $record['city'] = explode('移动', $v['name'])[0]; $record['supply'] = '移动'; } else { $record['city'] = $v['name']; $record['supply'] = '电信/联通'; } $record['ip'] = ''; $record['daikuan'] = ''; $record['onlineuser'] = ''; $record['maxuser'] = ''; $record['online'] = empty($v['status']) ? '故障' : $status[$v['status']]; $record['status'] = ''; $record['nasname'] = $v['address']; if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, [$product_name, explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } $list1[$key][] = $record; } } foreach ($list1 as $val) { foreach ($val as $net_data) { fputcsv($file, $net_data); fputcsv($all, $net_data); } } } //蘑菇服务器解析规则 function mogu_getList($data, &$file, &$all ) { $key = ''; $list1 = []; // print_r($data); $province_record = []; foreach ($data as $info) { $record = []; $record['name'] = '蘑菇'; //如果存在 不为空 则 $city_name = explode('-',$info['city']); if(empty($info['city'])) { continue; } //如果存在 不为空 则 if (!in_array( $city_name[0], $province_record)) { $record['city'] = $city_name[0]; $province_record[] = $city_name[0]; $key = $record['city']; $list1[$key][] = $record; } $key = $city_name[0]; $record['city'] = $city_name[1]; $record['supply'] = $info['yunying']; $record['ip'] = $info['ipCount']; $record['daikuan'] = $info['daikuan']; $record['onlineuser'] = ''; $record['maxuser'] = ''; $record['online'] = $info['status']; $record['status'] = $info['onlinestatus']; $record['nasname'] = $info['address']; $list1[$key][] = $record; } foreach ($list1 as $val) { foreach ($val as $net_data) { fputcsv($file, $net_data); fputcsv($all, $net_data); } } } function laoying_getList($list, &$file, &$all, $exit) { global $dnx_exit, $dnx_has_exit; $key = ''; $online = ['故障', '正常']; $province_record = []; foreach ($list as $k => $info) { //生成数据 $record = []; $record['name'] = '老鹰'; //运营商 if (strpos($info['server_address'], '电信') !== false) { $supply = '电信'; } elseif (strpos($info['server_address'], '联通') !== false) { $supply = '联通'; } elseif (strpos($info['server_address'], '移动') !== false) { $supply = '移动'; } else { $supply = '电信/联通'; } //如果存在 不为空 则 if (!in_array( $info['category_name'], $province_record)) { $record['city'] = $info['category_name']; $province_record[] = $info['category_name']; $key = $record['city']; $list1[$key][] = $record; } $key = $info['category_name']; $record['city'] =$info['server_address']; $record['supply'] = $supply; $record['ip'] = ''; $record['daikuan'] = ''; $record['onlineuser'] = ''; $record['maxuser'] = ''; $record['online'] = $online[$info['isonline']]; $record['status'] = ''; if (strpos($info['remote_domain'], ' ') !== false) { $nas_list = explode(' ',$info['remote_domain']); $record['nasname'] = $nas_list[0]; if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, ['老鹰', explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } $list1[$key][] = $record; $record['nasname'] = empty($nas_list[1])?$nas_list[2]:$nas_list[1]; if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, ['老鹰', explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } $list1[$key][] = $record; } else { $record['nasname'] = $info['remote_domain']; if (!in_array($record['nasname'], $exit) && !in_array($record['nasname'], $dnx_has_exit)) { fputcsv($dnx_exit, ['老鹰', explode('.',$record['nasname'])[0], $record['nasname'], date('Y-m-d H:i:s')]); } $list1[$key][] = $record; } } foreach ($list1 as $val) { $temp = $val[0]; unset($val[0]); $sort = array_column($val,'city'); array_multisort($sort,SORT_ASC,$val); array_unshift($val,$temp); foreach ($val as $net_data) { fputcsv($file, $net_data); fputcsv($all, $net_data); } } } //共享 function gongxiang_getList($html, &$file, &$all, $exit, $pro = '共享') { global $dnx_exit, $dnx_has_exit; //省会 $province = ['黑龙', '内蒙']; $province_record = []; $key = ''; $list1 = []; preg_match_all("/