public static function doGet($url, $header)
{
$refer = BASE_URL;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);
// 从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $refer);
$cexecute = curl_exec($ch);
curl_close($ch);
if ($cexecute) {
return $cexecute;
} else {
return false;
}
}
/** * @JSON * @Authorization */ public function nodeQuery() { $API_BASE = "https://nodequery.com/api/"; $API_KEY = Option::get('SERVER_NODE_QUERY_API_KEY'); if (!$API_KEY) { throw new Error('API_KEY is not available', 500); } $status = array(); $result = Http::doGet($API_BASE . 'servers?api_key=' . $API_KEY, array()); if ($result) { $result = json_decode($result, true); foreach ($result['data'] as $node) { $status[] = array('id' => $node['id'], 'status' => $node['status'], 'availability' => $node['availability'], 'update_time' => $node['update_time'], 'name' => $node['name'], 'load_percent' => $node['load_percent'], 'load_average' => $node['load_average'], 'ram_total' => $node['ram_total'], 'ram_usage' => $node['ram_usage'], 'disk_total' => $node['disk_total'], 'disk_usage' => $node['disk_usage_'], 'current_rx' => $node['current_rx'], 'current_tx' => $node['current_tx']); } } return $status; }