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);
示例#2
0
文件: live.php 项目: DmitriyS/gozm
}
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;
            }
        }
    }
}