138 lines
3.4 KiB
PHP
138 lines
3.4 KiB
PHP
<?php
|
|
|
|
error_reporting(0);
|
|
|
|
header('Access-Control-Allow-Origin: *');
|
|
|
|
$type = strip_tags($_GET['type']);
|
|
$ip = strip_tags($_GET['ip']);
|
|
$container = strip_tags($_GET['container']);
|
|
$id = strip_tags($_GET['id']);
|
|
|
|
require 'hidden/SourceQuery/bootstrap.php';
|
|
use xPaw\SourceQuery\SourceQuery;
|
|
|
|
require 'hidden/MinecraftQuery/MinecraftQueryClass.php';
|
|
require 'hidden/MinecraftQuery/MinecraftQueryException.php';
|
|
require 'hidden/MinecraftQuery/MinecraftColors.php';
|
|
use xPaw\MinecraftQuery;
|
|
use xPaw\MinecraftQueryException;
|
|
|
|
//include('hidden/csgo_query.php');
|
|
require_once("hidden/TeamSpeak3/TeamSpeak3.php");
|
|
|
|
switch($type) {
|
|
case 'csgo': echo json_encode(csgoStatus($ip,$container,$id));break;
|
|
case 'ts': echo json_encode(tsStatus($ip,$container,$id));break;
|
|
case 'mc': echo json_encode(mcStatus($ip,$container,$id));break;
|
|
default: echo json_encode('bad query');break;
|
|
}
|
|
|
|
function csgoStatus($address,$container,$id) {
|
|
$response = '';
|
|
/*$q = format_source_query(source_query($address));
|
|
if ($q['hostname'] == '0') {
|
|
$response['status'] = 'offline';
|
|
}
|
|
else {
|
|
$response['status'] = 'online';
|
|
$response['map'] = $q['map'];
|
|
$response['players'] = $q['players'] . '/' . $q['maxplayers'];
|
|
}*/
|
|
$Query = new SourceQuery();
|
|
$exploded_ip = explode(':',$address);
|
|
try
|
|
{
|
|
$Query->Connect( $exploded_ip[0], $exploded_ip[1], 1, SourceQuery::SOURCE );
|
|
$info = $Query->GetInfo();
|
|
$response['status'] = 'online';
|
|
$response['map'] = $info['Map'];
|
|
$response['players'] = $info['Players'] . '/' . $info['MaxPlayers'];
|
|
}
|
|
catch( Exception $e )
|
|
{
|
|
//echo $e->getMessage( );
|
|
$response['status'] = 'offline';
|
|
}
|
|
finally
|
|
{
|
|
$Query->Disconnect( );
|
|
}
|
|
|
|
$response['container'] = $container;
|
|
$response['id'] = $id;
|
|
|
|
return $response;
|
|
}
|
|
|
|
function tsStatus($address,$container,$id) {
|
|
$response = '';
|
|
try
|
|
{
|
|
$ts3 = TeamSpeak3::factory("serverquery://".$address);
|
|
//query_user:query_pass@host:10011/?server_port=9987
|
|
|
|
$response['status'] = 'online';
|
|
$response['map'] = '';
|
|
$response['players'] = $ts3->virtualserver_clientsonline-1 . " / " . $ts3->virtualserver_maxclients;
|
|
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
$response['status'] = 'offline';
|
|
}
|
|
|
|
/*$c = file_get_contents($address);
|
|
$j = json_decode($c);
|
|
|
|
if ($j->status == "Online") {
|
|
$response['status'] = 'online';
|
|
$response['map'] = '';
|
|
$response['players'] = $j->players . " / " . $j->slots;
|
|
}
|
|
else {
|
|
$response['status'] = 'offline';
|
|
}*/
|
|
|
|
$response['container'] = $container;
|
|
$response['id'] = $id;
|
|
|
|
return $response;
|
|
}
|
|
|
|
function mcStatus($address,$container,$id) {
|
|
$response = '';
|
|
|
|
$address = explode(':',$address);
|
|
|
|
Ini_Set('display_errors', true);
|
|
|
|
$Query = new MinecraftQuery();
|
|
try
|
|
{
|
|
$Query->Connect($address[0], $address[1], 1);
|
|
}
|
|
catch(MinecraftQueryException $e)
|
|
{
|
|
$Exception = $e;
|
|
}
|
|
|
|
if (($Info = $Query->GetInfo()) !== false) {
|
|
$response['status'] = 'online';
|
|
$response['map'] = $Info['Map'];
|
|
$response['players'] = $Info['Players'] . " / " . $Info['MaxPlayers'];
|
|
|
|
$response['container'] = $container;
|
|
$response['id'] = $id;
|
|
}
|
|
else {
|
|
$response['status'] = 'offline';
|
|
$response['container'] = $container;
|
|
$response['id'] = $id;
|
|
}
|
|
|
|
return $response;
|
|
}
|
|
|
|
?>
|