public static function getInfo() { /* Using SourceQuery class by xPaw to get the server info. https://github.com/xPaw/PHP-Source-Query-Class/ */ require './class/SourceQuery/SourceQuery.class.php'; require './settings.php'; $query = new SourceQuery(); try { $query->Connect($server['ip'], $server['port'], 1, SourceQuery::SOURCE); $info = $query->GetInfo(); } catch (Exception $e) { return array('error' => 'Server connection failed'); } $result = array(); $result['ip'] = $server['ip'] . ':' . $server['port']; $result['players'] = $info['Players']; $result['maxplayers'] = $info['MaxPlayers']; $result['map'] = $info['Map']; if ($server['name']) { $result['name'] = $server['name']; } else { $result['name'] = $info['HostName']; } return $result; }
function getServerInfo($ip, $port, $translation) { $SQ_SERVER_ADDR = $ip; $SQ_SERVER_PORT = $port; $SQ_TIMEOUT = 5; $SQ_ENGINE = SourceQuery::SOURCE; $Query = new SourceQuery(); $connect = $translation['table_headers']['connect']; $nick = $translation['table_headers']['nick']; $score = $translation['table_headers']['score']; $time = $translation['table_headers']['time']; try { $Query->Connect($SQ_SERVER_ADDR, $SQ_SERVER_PORT, $SQ_TIMEOUT, $SQ_ENGINE); $ip = $SQ_SERVER_ADDR . ':' . $SQ_SERVER_PORT; $server_info = $Query->GetInfo(); if ($server_info !== false) { $server_name = $server_info['HostName']; $server_map = $server_info['Map']; $server_port = $server_info['GamePort']; $server_max = $server_info['MaxPlayers']; $server_players = $server_info['Players']; $players = $Query->GetPlayers(); $result = '<tr class="server" data-key="' . $server_info['ServerID'] . '" data-game-folder="csgo"> <td class="icon"><img src="./..//images/games/csgo.png" alt="Counter-Strike: Global Offensive" title="Counter-Strike: Global Offensive"></td> <td class="ServerQuery_VAC icon"><img src="./../images/secure.png" alt="Valve Anti-Cheat"></td> <td class="ServerQuery_hostname">'; $result .= '<a href="steam://connect/' . $ip . '" title="'; $result .= $connect; $result .= '">'; $result .= $server_name; $result .= '</a>'; $result .= '</td> <td class="ServerQuery_players">'; $result .= $server_players . '/' . $server_max; $result .= '</td> <td class="ServerQuery_map">'; $result .= $server_map; $result .= '</td> </tr>'; $result .= '<tr class="section" id="server-section-' . $server_info['ServerID'] . '"> <td colspan="6"> <div> <table class="table table-condensed table-hover pull-left" style="max-width: 430px"> <thead> <tr> <th>'; $result .= $nick; $result .= '</th> <th class="nowrap text-right">'; $result .= $score; $result .= '</th> <th class="nowrap">'; $result .= $time; $result .= '</th> </tr> </thead> <tbody>'; foreach ($players as $player) { if ($player['Name'] !== '') { $result .= '<tr class="player" > <td>'; $result .= $player['Name']; $result .= '</td> <td class="text-right">'; $result .= $player['Frags']; $result .= '</td> <td class="nowrap text-right">'; $result .= $player['TimeF']; $result .= '</td></tr>'; } } $result .= '</tbody> </table> <div class="pull-right">'; if (@getimagesize('http://ezpz.cz/images/maps/csgo/' . $server_map . '.jpg') === false) { $result .= '<img alt="' . $server_map . '" class="map-image img-rounded" width="340px" height="255px" src="./../images/maps/unknown.jpg">'; } else { $result .= '<img alt="' . $server_map . '" class="map-image img-rounded" width="340px" height="255px" src="./../images/maps/csgo/' . $server_map . '.jpg">'; } $result .= '<div class="well text-center"><p>' . $ip . '</p> <a class="btn btn-success" href="steam://connect/' . $ip . '">'; $result .= $connect; $result .= '</a> </div> </div> </div> </td> </tr>'; } } catch (Exception $e) { $result .= $e; } return $result; }
public function post(Request $request, Application $app) { $sourceQuery = new \SourceQuery(); try { $ip = $request->get('serverIp'); $port = $request->get('port'); $appId = $request->get('appid'); $sourceQuery->Connect($ip, $port, 1, $appId); $result = array('success' => true, 'data' => array('info' => $sourceQuery->GetInfo(), 'players' => $sourceQuery->GetPlayers())); $result['success'] = is_array($result['data']['info']) && is_array($result['data']['players']); return new JsonResponse($result); } catch (\Exception $e) { return new JsonResponse(array('success' => FALSE, 'message' => $e->getMessage())); } $sourceQuery->Disconnect(); }
/** * @author João Reis * @return array */ function _getStatus() { global $_ip, $_portaQuery, $_objQuery; // Objeto para Query's $_objQuery = new SourceQuery(); try { // Conectar-se ao servidor $_objQuery->Connect($_ip, $_portaQuery, 1, SourceQuery::GOLDSOURCE); #print_r($_objQuery); $Info = array(); $Jogadores = array(); $Regras = array(); // Retornar Plugins neste caso sao Regras $_Regras = $_objQuery->GetRules(); // Retornar lista de Jogadores $Jogadores = $_objQuery->GetPlayers(); // Retornar Informação do servidor. $Info = $_objQuery->GetInfo(); $_MapaAtual = $Info['Map']; $_SlotsUsados = $Info['Players']; $_MaxSlots = $Info['MaxPlayers']; $_Versao = $Info['Version']; // Passar lista de jogadores recebida em algo Global para que o painel perceba. $JogadoresJ = array(); if (count($Jogadores) > 0 && $Info != null) { foreach ($Jogadores as $Jogador) { $JogadoresJ[] = utf8_encode($Jogador["Name"]); } } $_Jogadores = $JogadoresJ; $_Plugins = $Regras; } catch (Exception $e) { $_MapaAtual = "....."; $_SlotsUsados = "....."; $_MaxSlots = "....."; $_Versao = "1.0.0"; } return array("Map" => $_MapaAtual, "Players" => $_SlotsUsados, "MaxPlayers" => $_MaxSlots, "Playerlist" => $_Jogadores, "Plugins" => $_Regras, "Versao" => $_Versao); }
<?php require __DIR__ . '/SourceQuery/SourceQuery.class.php'; // Edit this -> define('SQ_SERVER_ADDR', 'localhost'); define('SQ_SERVER_PORT', 27015); define('SQ_TIMEOUT', 1); define('SQ_ENGINE', SourceQuery::SOURCE); // Edit this <- $Timer = MicroTime(true); $Query = new SourceQuery(); $Info = array(); $Rules = array(); $Players = array(); try { $Query->Connect(SQ_SERVER_ADDR, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE); $Info = $Query->GetInfo(); $Players = $Query->GetPlayers(); $Rules = $Query->GetRules(); } catch (Exception $e) { $Exception = $e; } $Query->Disconnect(); $Timer = Number_Format(MicroTime(true) - $Timer, 4, '.', ''); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Source Query PHP Class</title>
</tr> </thead> <tbody> <?php // Select Bans $SelectServers = $db->query("SELECT * FROM `servers`"); // Print Output foreach ($SelectServers as $PrintServers) { // Query Server define('SQ_TIMEOUT', 1); define('SQ_ENGINE', SourceQuery::SOURCE); $ServerQuery = new SourceQuery(); $ServerInfo = array(); $ServerPlayers = array(); try { $ServerQuery->Connect($PrintServers['IPAddress'], $PrintServers['Port'], SQ_TIMEOUT, SQ_ENGINE); $ServerInfo = $ServerQuery->GetInfo(); $ServerPlayers = $ServerQuery->GetPlayers(); } catch (Exception $e) { echo "Something went wrong try again later!"; } $ServerQuery->Disconnect(); echo "\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td><b>" . $PrintServers['ServerID'] . "</b></td>\n\t\t\t\t\t\t\t\t<td><a href='steam://connect/" . $PrintServers['IPAddress'] . ":" . $PrintServers['Port'] . "'>" . $PrintServers['IPAddress'] . ":" . $PrintServers['Port'] . "</a></td>\n\t\t\t\t\t\t\t\t<td>" . $PrintServers['HostName'] . "</td>\n\t\t\t\t\t\t\t\t<td>" . htmlspecialchars($ServerInfo['ModDesc']) . "</td>\n\t\t\t\t\t\t\t\t<td>" . htmlspecialchars($ServerInfo['Map']) . "</td>\n\t\t\t\t\t\t\t\t<td>" . htmlspecialchars($ServerInfo['Players']) . " / " . htmlspecialchars($ServerInfo['MaxPlayers']) . "</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t"; } ?> </tbody> </table> </div> <!-- ./Servers --> <!-- Bans -->
<?php ob_clean(); if ($_GET['cmd'] == "logout") { session_destroy(); exit("<br>" . yes("You are logged out!")); } try { $Query = new SourceQuery(); $Query->Connect($_SESSION['s'], $_SESSION['port'], SQ_TIMEOUT, SQ_ENGINE); $Query->setRconPassword($_SESSION['p']); $r = $Query->Rcon(trim($_GET['cmd'])); $dictionary = array('§9' => '<span class="text-primary">', '§c' => '<span class="text-danger">', '§a' => '<span class="text-success">', '§0' => '', '§o' => '<span style="font-style:italic">', "\n" => '</br>', '§r' => '</span>'); $r = str_replace(array_keys($dictionary), $dictionary, $r); exit($r); } catch (Exception $e) { echo fail($e->getMessage()); }
} catch (PDOException $e) { http_response_code(500); } if ($pdo) { $stmt = $pdo->prepare('SELECT * FROM kzstats_server'); if ($stmt->execute()) { $results = $stmt->fetchAll(2); foreach ($results as $result) { $ip = $result['ip']; $port = $result['port']; $tick = $result['tick']; $countrycode = $result['countrycode']; $query = new SourceQuery(); // Try connecting to the server try { $query->Connect($ip, $port, 1, SourceQuery::SOURCE); $info = $query->GetInfo(); } catch (Exception $e) { continue; } // Check if query actually returned something if (!$info['HostName']) { continue; } // freegeoip.net API query for countrycode if (!$countrycode || $countrycode == null) { $countrydata = json_decode(file_get_contents('https://freegeoip.net/json/' . $ip)); if ($countrydata->country_code) { $code = $countrydata->country_code; } else { $code = 'UNK';
$interval = date_diff($create, $end1); $days = (int) $interval->format("%a"); $end = strtotime($end); $sql = $dbh->query("UPDATE `amx_amxadmins` SET `expired` = '{$end}' WHERE `steamid` = '" . $row['steamid'] . "'"); if (!$sql) { die("Произошла ошибка, обновите страницу и попробуйте обратиться к администратору."); } } //Удаляем всю инфу о бане (bid прописывается в password) if ($type == 5) { $sql = $dbh->query("DELETE FROM `amx_bans` WHERE `bid` = '" . $row['pasword'] . "'"); $sql = $dbh->query("DELETE FROM `amx_bans_edit` WHERE `bid` = '" . $row['pasword'] . "'"); $sql = $dbh->query("DELETE FROM `amx_bans_log` WHERE `bid` = '" . $row['pasword'] . "'"); } //Посылаем amx_reloadadmins спасибо xPaw //Пока заглушка на unban чтобы не было ошибки if ($type != 5) { $sql_server = $dbh->query("SELECT `address` FROM `amx_serverinfo` WHERE `id` = '{$server_id}'"); if ($sql_server && ($row_server = $sql_server->fetch())) { $row_server = $sql_server->fetch(); $address = explode(":", $row_server['address']); $Query = new SourceQuery(); $Query->Connect($address[0], $address[1], $address[1], SourceQuery::GOLDSOURCE); $Query->SetRconPassword($rcon); $Query->Rcon($cmd); $Query->Disconnect(); } } $f = @fopen("order.txt", "a+") or die("error"); fputs($f, "order_num :{$inv_id};Summ :{$out_summ};Date :{$date}\n"); fclose($f);
<div class="container"> <form class="form-signin" role="form" action="/rcon/index.php" method="POST"> <h2 class="form-signin-heading">Web RCON</h2> <?php if (!empty($_POST)) { if (empty($_POST['s']) || empty($_POST['p']) || empty($_POST['port'])) { echo fail("All fields are required."); } else { try { $Query = new SourceQuery(); $Query->Connect($_POST['s'], $_POST['port'], SQ_TIMEOUT, SQ_ENGINE); $Query->setRconPassword($_POST['p']); $_SESSION['s'] = $_POST['s']; $_SESSION['p'] = $_POST['p']; $_SESSION['port'] = $_POST['port']; header("Location: http://mcpe.me/rcon/index.php"); } catch (Exception $e) { echo fail($e->getMessage()); } } } ?> <input type="text" class="form-control" placeholder="Hostname" autofocus="" name="s" required=""> <input type="text" class="form-control" placeholder="Port" required="" value="19132" name="port"> <input type="password" class="form-control" placeholder="Password" required="" name="p"> <button class="btn btn-lg btn-primary btn-block" type="submit">Connect Now</button> </form> </div>
} $Query->Disconnect(); } if (isset($_GET["IP"])) { require __DIR__ . '/SourceQuery/SourceQuery.class.php'; define('SQ_TIMEOUT', 1); define('SQ_ENGINE', SourceQuery::SOURCE); $serverIp = $_GET["IP"]; $serverPort = $_GET["Port"]; $Timer = MicroTime(true); $Query = new SourceQuery(); $Info = array(); $Rules = array(); $Players = array(); try { $Query->Connect($serverIp, $serverPort, SQ_TIMEOUT, SQ_ENGINE); //$Query->SetRconPassword( SQ_RCON_Pass ); $Info = $Query->GetInfo(); $Players = $Query->GetPlayers(); $Rules = $Query->GetRules(); } catch (Exception $e) { $Exception = $e; } $Query->Disconnect(); $Timer = Number_Format(MicroTime(true) - $Timer, 4, '.', ''); } ?> <!-- Page Heading --> <div class="row"> <div class="col-lg-12">
$query = "SELECT * FROM servers"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { ?> <?php $ip = $row['IPAddress']; $port = $row['Port']; define('SQ_TIMEOUT', 1); define('SQ_ENGINE', SourceQuery::SOURCE); $Timer = MicroTime(true); $Query = new SourceQuery(); $Info = array(); $Rules = array(); $Players = array(); try { $Query->Connect($ip, $port, SQ_TIMEOUT, SQ_ENGINE); $Info = $Query->GetInfo(); $Players = $Query->GetPlayers(); } catch (Exception $e) { $Exception = $e; } $Query->Disconnect(); ?> <table width="100%" class="status" border="0"> <tr> <td width="30"> <img src="css/img/gameicon/gmod.png"/></td> <td width="160"><a href="steam://connect/<?php echo $ip; ?> :<?php