if ($server->Connect($server_address[0], $server_address[1], $servers_array[$sid]["rcon"])) { $response = $server->RconCommand("kick #" . $pl_uid . " " . $pl_reason); if (substr($response, 1) != "") { $user_msg = "_PLAYERKICKED"; log_to_db("Kick online", "nick: " . $pl_name . " <" . $pl_steamid . "><" . $pl_ip . "> kicked"); } $server_msg = $servers_array[$sid]["address"] . "<br>" . substr($response, 1); //for debug, shows the response from server $server->Disconnect(); } } if ($servers_array[$sid]["mod"]) { //get player list sent by plugin $server_address = explode(":", trim($servers_array[$sid]["address"])); $server = new Rcon(); if ($server->Connect($server_address[0], $server_address[1], $servers_array[$sid]["rcon"])) { $response = $server->ServerPlayers(); //explode packet and get infos $re = explode("\n", $response); //there is a response from amxmodx plugin if (strlen($response)) { if ($re[0] != "Bad rcon_password." && $re[1] != "Bad rcon_password." && $re[2] != "Bad rcon_password.") { foreach ($re as $k => $v) { $pl = explode("ü", $v); if (!is_array($pl)) { break; } $gi = geoip_open("include/GeoIP.dat", GEOIP_STANDARD); $cc = geoip_country_code_by_addr($gi, $pl[3]); $cn = geoip_country_name_by_addr($gi, $pl[3]); geoip_close($gi);
} if ($_GET['sid'] != "" && is_numeric($_GET['sid'])) { $sid = $_GET['sid']; } else { $sid = "0"; } $server_id = $servers_list[$sid]; //fetch server_information $resource2 = mysql_query("SELECT * FROM {$config->servers} WHERE id = '" . $server_id . "'") or die(mysql_error()); $result2 = mysql_fetch_object($resource2); if (mysql_num_rows($resource2)) { $split_address = explode(":", $result2->address); $eye_pee = $split_address['0']; $poort = $split_address['1']; $server = new Rcon(); $server->Connect($eye_pee, $poort, $result2->rcon); $infos = $server->Info(); $info = $server->ServerInfo(); //Action $response = $server->RconCommand("amx_timeleft"); $response1 = $server->RconCommand("mp_timelimit"); $response2 = $server->RconCommand("sv_visiblemaxplayers"); //get addons version $response_amxmodx = $server->RconCommand("amxmodx_version"); $response_amxbans = $server->RconCommand("amxbans_version"); $response_ptb = $server->RconCommand("amx_ptb_version"); $response_atac = $server->RconCommand("atac_version"); $response_hlr = $server->RconCommand("hltv_report"); $response_sank = $server->RconCommand("sanksounds_version"); $response_steambans = $server->RconCommand("sbsrv_version"); $response_metamod = $server->RconCommand("metamod_version");
require_once "include/access.inc.php"; require_once "include/menu.inc.php"; require_once "include/functions.inc.php"; //require_once("include/logfunc.inc.php"); //require_once("include/sql.inc.php"); require_once "include/rcon_hl_net.inc"; //fetch server_information $resource2 = mysql_query("SELECT * FROM " . $config->db_prefix . "_serverinfo ORDER BY hostname ASC") or die(mysql_error()); while ($result2 = mysql_fetch_object($resource2)) { $split_address = explode(":", $result2->address); $ip = $split_address['0']; $port = $split_address['1']; if ($ip && $port) { $server = new Rcon(); $ip = gethostbyname($ip); $server->Connect($ip, $port, $result2->rcon); $infos = $server->Info(); if ($infos) { //yes, infos ok $players = $server->Players(); $rules = $server->ServerRules(); //copy rules to rules array for template if (is_array($rules)) { foreach ($rules as $k => $v) { $rules_array[] = array("name" => $k, "value" => $v); } } //check if mappic exists if (file_exists("images/maps/" . $infos[mod] . "/" . $infos[map] . ".jpg")) { $mappic = $infos[map]; } else {
function rcon_send($command, $sid, $max_response_pages = 0) { //get server info global $config; $resource = mysql_query("SELECT address,rcon FROM " . $config->db_prefix . "_serverinfo WHERE id=" . $sid) or die(mysql_error()); $result = mysql_fetch_object($resource); if ($result) { $server_address = explode(":", trim($result->address)); $server_rcon = $result->rcon; $server = new Rcon(); if ($server->Connect($server_address[0], $server_address[1], $server_rcon)) { $response = $server->RconCommand($command, $max_response_pages); $server->Disconnect(); if ($response != "") { return trim($response); } else { return false; } } } }