493 lines
19 KiB
PHP
Executable File
493 lines
19 KiB
PHP
Executable File
<?php
|
|
/*
|
|
* @Descripttion:
|
|
* @version:
|
|
* @Author: kangkang
|
|
* @Date: 2020-11-03 11:04:15
|
|
* @LastEditors: kangkang
|
|
* @LastEditTime: 2020-11-06 14:22:26
|
|
*/
|
|
|
|
header('Access-Control-Allow-Origin: *');
|
|
header("Access-Control-Allow-Methods: *");
|
|
header('Access-Control-Allow-Headers:*');
|
|
header("Access-Control-Allow-Credentials: true");
|
|
|
|
$all = fopen('./all.csv','w');
|
|
$qiangzi_f = fopen('./qiangzi.csv','w');
|
|
$qiangzi = json_decode(file_get_contents("http://47.92.116.14:2222/api/areaPool.html?type=json"), true);
|
|
//写入强子文件
|
|
qiangzi_getList($qiangzi,$qiangzi_f,$all);
|
|
fclose($qiangzi_f);
|
|
|
|
$xingxing_f = fopen('./xingxing.csv','w');
|
|
$xingxing = json_decode(file_get_contents("http://47.110.154.124:6930/api/nasStatus.html?format=json"), true);
|
|
//写入星星文件
|
|
xingxing_getList($xingxing,$xingxing_f,$all);
|
|
fclose($xingxing_f);
|
|
|
|
$jike_f = fopen('./jike.csv','w');
|
|
$jike = json_decode(file_get_contents("http://api.webok.me/beikeiplist/"), true)['data'];
|
|
//写入极客文件
|
|
jike_getList($jike,$jike_f,$all);
|
|
fclose($jike_f);
|
|
|
|
$tiantian_f = fopen('./tiantian.csv','w');
|
|
$tiantian = json_decode(file_get_contents("http://api.ipzuiduo.com/api/areas?apiid=135&sendtime=".time()."&sign=".md5('apiid=135&sendtime='.time().'Fz1JRXVBCuwja2G2SoY2EUdgXtCGSBXS')), true)['data'];
|
|
//写入天天文件
|
|
tiantian_getList($tiantian,$tiantian_f,$all);
|
|
fclose($tiantian_f);
|
|
|
|
$laoying_f = fopen('./laoying.csv','w');
|
|
$laoying = json_decode(get_content('https://dl.ipduoduo.com/api/area?_=1604541004026','_dailissid=b3da7e1676537db8a36b7e4778bfed50c4f388237dc4e71d2e09386fe927a8927cd506150a323beda7f3a8330fa7665d31e3a712b14513c61529290a'), true)['data'];
|
|
//写入老鹰文件
|
|
tiantian_getList($laoying,$laoying_f,$all);
|
|
fclose($laoying_f);
|
|
|
|
$shihui_f = fopen('./shihui.csv','w');
|
|
$shihui = get_content('http://39.96.182.192:8888/agent.html','PHPSESSID=4215spk7em5u4kutgaro65l9f1; menuid=submenu_profile');
|
|
//写入实惠文件
|
|
shihui_getList($shihui,$shihui_f,$all);
|
|
fclose($shihui_f);
|
|
|
|
$gongxiang_f = fopen('./gongxiang.csv','w');
|
|
$gongxiang = get_content('http://118.25.157.170:39999/agent.html','PHPSESSID=hqk8ih6l4hbpp75a7g2sfb3l41');
|
|
gongxiang_getList($gongxiang,$gongxiang_f,$all);
|
|
fclose($gongxiang_f);
|
|
|
|
$xunlian_f = fopen('./xunlian.csv','w');
|
|
$xunlian = json_decode(file_get_contents("http://xunyou.ippptp.com:2222/api/areaPool.html?type=json"), true);
|
|
//写入讯连文件
|
|
xunlian_getList($xunlian,$xunlian_f,$all);
|
|
fclose($xunlian_f);
|
|
|
|
//星星2288写入all
|
|
$file2288 = fopen('./2288.csv','r');
|
|
while ($data = fgetcsv($file2288)) {
|
|
fputcsv($all,$data);
|
|
}
|
|
fclose($file2288);
|
|
fclose($all);
|
|
|
|
//强子服务器解析规则
|
|
function qiangzi_getList($data,&$file,&$all)
|
|
{
|
|
$online = ['故障','正常','异常'];
|
|
$status = ['正常','拥挤','超载'];
|
|
|
|
foreach ($data as $info) {
|
|
$record = [];
|
|
//如果存在 不为空 则
|
|
if(!empty($info['titleRow'])){
|
|
$record['city'] = $info['titleRow'];
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
if(empty($info['province'])){
|
|
$record['city'] = '全国混播';
|
|
} else {
|
|
$record['city'] = trim($info['city'],'\"');
|
|
}
|
|
if(strpos($info['description'],'电信') !== false){
|
|
$record['supply'] = '电信';
|
|
} elseif(strpos($info['description'],'联通') !== false){
|
|
$record['supply'] = '联通';
|
|
} elseif(strpos($info['description'],'移动') !== false){
|
|
$record['supply'] = '移动';
|
|
} else {
|
|
$record['supply'] = '电信/联通';
|
|
}
|
|
$daikuan = explode('带宽', trim($info['description2']));
|
|
$record['ip'] = $daikuan[0];
|
|
$record['daikuan'] = $daikuan[1];
|
|
$record['onlineuser'] = $info['onlineuser'];
|
|
$record['maxuser'] = $info['maxuser'];
|
|
$record['online'] = $online[$info['online']];
|
|
$record['status'] = $status[$info['status']];
|
|
for ($i=1;$i<6;$i++){
|
|
if(!empty($info['nasname'.$i])){
|
|
$record['nasname'] = $info['nasname'.$i];
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
//星星服务器解析
|
|
function xingxing_getList($data,&$file,&$all)
|
|
{
|
|
$online = ['离线','在线'];
|
|
$province_record = [];
|
|
//省会
|
|
$province = ['黑龙','内蒙'];
|
|
$citys = ['北京','上海','天津','重庆'];
|
|
foreach ($data as $info) {
|
|
|
|
$record = [];
|
|
$province_detail = mb_substr($info['description'],0,2);
|
|
if(in_array($province_detail,$province)){
|
|
$province_detail = mb_substr($info['description'],0,3);
|
|
$info['description'] = mb_substr($info['description'],3);
|
|
} elseif(!in_array($province_detail,$citys)) {
|
|
$info['description'] = mb_substr($info['description'],2);
|
|
}
|
|
if(!in_array($province_detail,$province_record)){
|
|
$record['city'] = $province_detail;
|
|
$province_record[] = $province_detail;
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
if(strpos($info['description'],'电信') !== false){
|
|
$record['city'] = explode('电信',$info['description'])[0];
|
|
$record['supply'] = '电信';
|
|
} elseif(strpos($info['description'],'联通') !== false){
|
|
$record['city'] = explode('联通',$info['description'])[0];
|
|
$record['supply'] = '联通';
|
|
} elseif(strpos($info['description'],'移动') !== false){
|
|
$record['city'] = explode('移动',$info['description'])[0];
|
|
$record['supply'] = '移动';
|
|
} else {
|
|
$record['city'] = $info['description'];
|
|
$record['supply'] = '电信/联通';
|
|
}
|
|
|
|
$record['ip'] = strpos($info['description2'],'-')? explode('-',$info['description2'])[1]:$info['description2'];
|
|
$record['daikuan'] = '';
|
|
$record['onlineuser'] = '';
|
|
$record['maxuser'] = '';
|
|
$record['online'] = $online[$info['online']];
|
|
$record['status'] = '';
|
|
$record['nasname'] = $info['nasname'];
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
|
|
}
|
|
|
|
//极客服务器解析
|
|
function jike_getList($data,&$file,&$all)
|
|
{
|
|
$status = ['yes'=>'正常','no'=>'故障'];
|
|
|
|
$province_record = [];
|
|
foreach ($data as $info) {
|
|
$record = [];
|
|
//如果存在 不为空 则
|
|
if(!in_array($info['province'],$province_record)){
|
|
$record['city'] = $info['province'];
|
|
$province_record[] = $info['province'];
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$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'];
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
|
|
}
|
|
|
|
//天天服务器解析规则
|
|
function tiantian_getList($data,&$file,&$all)
|
|
{
|
|
$status = ['维护中','正常'];
|
|
|
|
foreach ($data as $info) {
|
|
|
|
$record = [];
|
|
$record['city'] = $info['name'];
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$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'];
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
function shihui_getList($html,&$file,&$all){
|
|
preg_match("/<p>(.*\s*?)<p> <\/p><\/div>/is", $html, $result);
|
|
preg_match_all("/<p>(.*?)<\/p>/is", $result[0], $result);
|
|
foreach($result[0] as $k=>$info){
|
|
$record = [];
|
|
if ($k==0||$k==5){
|
|
continue;
|
|
} else {
|
|
$list = explode('<br />',$info);
|
|
$i = 0;
|
|
foreach($list as $v){
|
|
$v = trim($v);
|
|
$v = trim(str_replace(' ','',$v),'</p>');
|
|
if($i==0 && !empty($v)){
|
|
$record['city'] = $v;
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
} else {
|
|
|
|
if(!empty($v)){
|
|
$data = explode(' ',$v);
|
|
$add_data = explode('市',$data[0]);
|
|
$record['city'] = $add_data[0];
|
|
$record['supply'] = $add_data[1];
|
|
$record['ip'] = '';
|
|
$record['daikuan'] = '';
|
|
$record['onlineuser'] = '';
|
|
$record['maxuser'] = '';
|
|
$record['online'] = '';
|
|
$record['status'] = '';
|
|
$record['nasname'] = $data[count($data)-1];
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//共享
|
|
function gongxiang_getList($html,&$file,&$all){
|
|
//省会
|
|
$province = ['黑龙','内蒙'];
|
|
$province_record = [];
|
|
preg_match_all("/<p>(.*?)<\/p>/is", $html, $result);
|
|
foreach($result[0] as $k=>$info){
|
|
$record = [];
|
|
if ($k==0){
|
|
continue;
|
|
} else {
|
|
$info = ltrim($info,'<p>');
|
|
$info = rtrim($info,'</p>');
|
|
if(strpos($info,'span') !== false){
|
|
$data = explode('<span class="Apple-tab-span" style="white-space:pre"> </span>',$info);
|
|
} else {
|
|
$data = explode(' ',$info);
|
|
}
|
|
$record['nasname'] = $data[0];
|
|
|
|
$data[1] = trim($data[1]);
|
|
if(strpos($data[1],'电信') !== false){
|
|
$record['supply'] = '电信';
|
|
$data[1] = mb_substr($data[1],0,mb_strlen($data[1])-2);
|
|
} elseif(strpos($data[1],'联通') !== false){
|
|
$record['supply'] = '联通';
|
|
$data[1] = mb_substr($data[1],0,mb_strlen($data[1])-2);
|
|
} elseif(strpos($data[1],'移动') !== false){
|
|
$record['supply'] = '移动';
|
|
$data[1] = mb_substr($data[1],0,mb_strlen($data[1])-2);
|
|
} else {
|
|
$record['supply'] = '电信/联通';
|
|
}
|
|
if(mb_strlen($data[1])<=3){
|
|
if(!in_array($data[1],$province_record)){
|
|
$record['city'] = $data[1];
|
|
$record['supply'] = $record['supply'];
|
|
$record['ip'] = '';
|
|
$record['daikuan'] = '';
|
|
$record['onlineuser'] = '';
|
|
$record['maxuser'] = '';
|
|
$record['online'] = '';
|
|
$record['status'] = '';
|
|
$record['nasname'] = '';
|
|
$records['city'] = $data[1];
|
|
$province_record[] = $data[1];
|
|
fputcsv($file,$records);
|
|
fputcsv($all,$records);
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
} else {
|
|
$record['city'] = $data[1];
|
|
$record['supply'] = $record['supply'];
|
|
$record['ip'] = '';
|
|
$record['daikuan'] = '';
|
|
$record['onlineuser'] = '';
|
|
$record['maxuser'] = '';
|
|
$record['online'] = '';
|
|
$record['status'] = '';
|
|
$record['nasname'] = '';
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
} else {
|
|
$province_detail = mb_substr($data['1'],0,2);
|
|
if(in_array($province_detail,$province)){
|
|
$province_detail = mb_substr($data['1'],0,3);
|
|
if(in_array($province_detail,$province_record)){
|
|
$record['city'] = mb_substr($data['1'],3);
|
|
$record['supply'] = $record['supply'];
|
|
$record['ip'] = '';
|
|
$record['daikuan'] = '';
|
|
$record['onlineuser'] = '';
|
|
$record['maxuser'] = '';
|
|
$record['online'] = '';
|
|
$record['status'] = '';
|
|
$record['nasname'] = '';
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
} else {
|
|
$record['city'] = mb_substr($data['1'],3);
|
|
$record['supply'] = $record['supply'];
|
|
$record['ip'] = '';
|
|
$record['daikuan'] = '';
|
|
$record['onlineuser'] = '';
|
|
$record['maxuser'] = '';
|
|
$record['online'] = '';
|
|
$record['status'] = '';
|
|
$record['nasname'] = '';
|
|
$records['city'] = $province_detail;
|
|
$province_record[] = $province_detail;
|
|
fputcsv($file,$records);
|
|
fputcsv($all,$records);
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
} else {
|
|
$province_detail = mb_substr($data['1'],0,2);
|
|
if(in_array($province_detail,$province_record)){
|
|
$record['city'] = mb_substr($data['1'],2);
|
|
$record['supply'] = $record['supply'];
|
|
$record['ip'] = '';
|
|
$record['daikuan'] = '';
|
|
$record['onlineuser'] = '';
|
|
$record['maxuser'] = '';
|
|
$record['online'] = '';
|
|
$record['status'] = '';
|
|
$record['nasname'] = '';
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
} else {
|
|
$record['city'] = mb_substr($data['1'],2);
|
|
$record['supply'] = $record['supply'];
|
|
$record['ip'] = '';
|
|
$record['daikuan'] = '';
|
|
$record['onlineuser'] = '';
|
|
$record['maxuser'] = '';
|
|
$record['online'] = '';
|
|
$record['status'] = '';
|
|
$record['nasname'] = '';
|
|
$records['city'] = $province_detail;
|
|
$province_record[] = $province_detail;
|
|
fputcsv($file,$records);
|
|
fputcsv($all,$records);
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function xunlian_getList($data,&$file,&$all){
|
|
$online = ['离线','正常'];
|
|
$province = ['黑龙','内蒙'];
|
|
$province_record = [];
|
|
foreach($data as $info){
|
|
$record = [];
|
|
$province_detail = mb_substr($info['description'],0,2);
|
|
if($province_detail == '全国'){
|
|
$record['city'] = $info['description'];
|
|
if(!in_array('混播',$province_record)){
|
|
$province_record[] = '混播';
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
$record['supply'] = '电信/联通';
|
|
}
|
|
} else {
|
|
if(in_array($province_detail,$province)){
|
|
$province_detail = mb_substr($info['description'],0,3);
|
|
$info['description'] = mb_substr($info['description'],3);
|
|
} else {
|
|
$info['description'] = mb_substr($info['description'],2);
|
|
}
|
|
if(!in_array($province_detail,$province_record)){
|
|
$record['city'] = $province_detail;
|
|
$province_record[] = $province_detail;
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
if(strpos($info['description'],'电信') !== false){
|
|
$record['city'] = mb_substr($info['description'],0,mb_strlen($info['description'])-2);
|
|
$record['supply'] = '电信';
|
|
} elseif(strpos($info['description'],'联通') !== false){
|
|
$record['city'] = mb_substr($info['description'],0,mb_strlen($info['description'])-2);
|
|
$record['supply'] = '联通';
|
|
} elseif(strpos($info['description'],'移动') !== false){
|
|
$record['city'] = mb_substr($info['description'],0,mb_strlen($info['description'])-2);
|
|
$record['supply'] = '移动';
|
|
} else {
|
|
$record['city'] = $info['description'];
|
|
$record['supply'] = '电信/联通';
|
|
}
|
|
}
|
|
if(strpos($record['city'],'省') !== false){
|
|
$record['city'] = mb_substr($record['city'],1,mb_strlen($info['description']));
|
|
}
|
|
for ($i=1;$i<6;$i++){
|
|
if(!empty($info['nasname'.$i])){
|
|
|
|
|
|
$record['ip'] = '';
|
|
if($i==1){
|
|
$record['daikuan'] = $info['maxbands']?:$info['description2'];
|
|
} else {
|
|
$record['daikuan'] = $info['maxbands'.($i-1)]?:$info['description2'];
|
|
}
|
|
$record['onlineuser'] = '';
|
|
$record['maxuser'] = '';
|
|
$record['online'] = $online[$info['online']];
|
|
$record['status'] = '';
|
|
$record['nasname'] = $info['nasname'.$i];
|
|
fputcsv($file,$record);
|
|
fputcsv($all,$record);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function get_content($url, $cookie) {
|
|
$ch = curl_init();
|
|
curl_setopt($ch, CURLOPT_URL, $url);
|
|
curl_setopt($ch, CURLOPT_HEADER, 0);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
curl_setopt($ch, CURLOPT_COOKIE, $cookie); //读取cookie
|
|
$rs = curl_exec($ch); //执行cURL抓取页面内容
|
|
curl_close($ch);
|
|
return $rs;
|
|
} |