Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Нормальный Скрипт Мониторинга

Статус пользователя refeat
сообщение 1.2.2010, 18:30
Сообщение #1


Стаж: 16 лет

Сообщений: 47
Благодарностей: 16
Полезность: 261

Отличный скрипт мониторинга! советую
Вид мониторинга такой создаём файл например Monitoring.php туда вставляем код и Затем получается мониторинг типа monitoring.php?ip=Айпи&port=ПОРТ
Картинки кидать в maps с форматом jpg

Код для Source(Я переделал)
Раскрывающийся текст
Код
<?
echo "<title>Мониторинг сервера</title> ";
/*---------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------+
| CS Stat Panel v.1.0-панель вывода статистики КС
| Copyright © 2006 Pashtet ака Berezkin Pavel
| Mail: pashtetHK@gmail.com
+----------------------------------------------------+
| Скачали с w1rtel.blogspot.com
+----------------------------------------------------*/

$sock             = NULL;
$errno            = 0;
$errstr           = '';
$raw              = '';                             // raw data string
$data             = array();                        // array of parsed data from a query
$ping             = 0;                              // response time from last command sent/recv
$plrstr           = 'U';
$halflife_version = 1;                              // 0 = unknown version
$infostr          = 'TSource Engine Query'.chr(0);
$rulestr          = 'V';
$pingstr          = 'i';
$challenge        = 'W';

function query_info($ip, $port)
{
  global $infostr;
  if (!$ip) return FALSE;
  $start = _getmicrotime();
  $raw = _sendquery($ip, $port, $infostr);
  $end = _getmicrotime();
  if (!$raw) return FALSE;
  $data = array();                                        // query_info always resets the data array (so call this before other queries)
  if ($raw != '')
   {
    $data['ping'] = ceil(($end - $start) * 1000);        // return the time (ms) it took for the packet to return (ping)
    $data['ip']=$ip;
    $data['port']=$port;
    $data=_parse_info_halflife1($raw);
    return $data;
   }
return FALSE;
}

function _parse_info_halflife1($raw) {
        $raw = substr($raw, 5);                // strip off response header bytes
        $data['int_ipport']=_getnullstr($raw);
        list($data['int_ip'], $data['int_port'])= explode(':', $data['int_ipport']);
        $data['name']= _getnullstr($raw);
        $data['map']= _getnullstr($raw);
        $data['gamedir']= _getnullstr($raw);
        $data['gamename']= _getnullstr($raw);
        $data['totalplayers']= _getbyte($raw);
        $data['maxplayers']= _getbyte($raw);
        $data['protocol']= _getbyte($raw);        // 47
        $data['servertype']= _getchar($raw);
        $data['serveros']= _getchar($raw);
        $data['serverlocked']= _getbyte($raw);
        $data['modrunning']= _getbyte($raw);
        $data['modurl']= $data['modrunning'] ? _getnullstr($raw) : '';
        $data['modftp']= $data['modrunning'] ? _getnullstr($raw) : '';
        _getnullstr($raw);
        $data['modver']= _getshort($raw) . '.' . _getshort($raw);
        $data['modsize']= _getlong($raw);
        $data['modserveronly']= _getbyte($raw);
        $data['modclientdll']= _getbyte($raw);
        return $data;
}

// The sub-class must always contain this method to query the active players list
function query_players($ip, $port)
{
   global $plrstr;
   $raw =_sendquery($ip, $port, $plrstr.query_challenge($ip, $port));
   if (!$raw) return FALSE;
   if (!empty($raw))
        {
         $raw = substr($raw, 5);                // strip off response header bytes
         $data['activeplayers']= _getbyte($raw);
         $data['players']= array();
         for ($i=1; $i <= $data['activeplayers']; $i++)
          {
           if ($raw == '') break;
           $data['players'][] = array('id'=> _getbyte($raw),
                                      'name'=> _getnullstr($raw),
                                      'kills'=> _getlong($raw),
                                      'onlinetime'=> (int)_getfloat($raw));
          }
         $data['activeplayers'] = count($data['players']);
         return $data;
        }
        return FALSE;
}

function query_ping($ip, $port) {
         global $pingstr;
        if (!$ip) return FALSE;
        $start = _getmicrotime();
        $raw=_sendquery($ip, $port, $pingstr);
        $end = _getmicrotime();
        if ($raw == '')
        {
        return FALSE;
        }
        else
        {
        return ($end - $start) * 1000;
        }
}

function _sendquery($ip, $port, $cmd) {
        global $DEBUG;
        if (!$port) $port = '27015';
        $retry = 0;
        $oldmqr = get_magic_quotes_runtime();
        $sock=_connectsocket($ip, $port);
        if (!$sock)
        {
         trigger_error("Failed to connect to socket on $ip:$port", E_USER_WARNING);
         return FALSE;
        }
        $packets = array();                                        // stores each packet seperately, so we can combine them afterwards
        $command = pack("N", 0xFFFFFFFF) . $cmd;                   # . pack('x');
        $raw = "";

        if ($oldmqr) set_magic_quotes_runtime(0);
        if ($DEBUG) print "DEBUG: Sending query to $ip:$port:\n" . hexdump($command) . "<br>";
        fwrite($sock, $command, strlen($command));
        $expected = 0;
        do {
                $packet = fread($sock, 1500);
                if (strlen($packet) == 0)
                {
                  $retry++;
                  if ($DEBUG) print "DEBUG: Resending query $ip:$port:\n" . hexdump($command) . "<br>";
                  fwrite($sock, $command, strlen($command));
                  $expected = 1;
                  continue;
                }

                if ($DEBUG) print "DEBUG: Received " . strlen($packet) . " bytes from $ip:$port:\n" . hexdump($packet) . "<br>";

                $header = substr($packet, 0, 4);                                     // get the 4 byte header
                $ack = @unpack("N1split", $header);
                $split = sprintf("%u", $ack['split']);
                if ($DEBUG) print "DEBUG: ACK = " . sprintf("0x%X", $ack['split']) . "\n";
                if ($split == 0xFeFFFFFF)
                {                                                                    // we need to deal with multiple packets
                        $packet = substr($packet, 4);                                // strip off the leading 4 bytes
                        $header = substr($packet, 0, 5);                             // get the 'sub-header ack'
                        $packet = substr($packet, 5);                                // strip off 32bit int ID, seq# and total packet#
                        $info = @unpack("N1id/C1byte", $header);                     // we don't really care about the ID
                        if ($DEBUG) printf("DEBUG: Sub ACK: %X (%08b)\n", $info['byte'], $info['byte']);
                        if (!$expected) $expected = $info['byte'] & 0x0F;            // now we know how many packets to receive
                        $seq = (int)($info['byte'] >> 4);                            // get the sequence number of this packet
                        $packets[$seq] = $packet;                                    // store the packet
                        $expected--;
                }
                elseif ($split == 0xFFFFFFFF)
                {
                        $packets[0] = $packet;
                        $expected = 0;
                }
        }
     while ($expected and $retry < maxretries());

        fclose($sock);
        if ($oldmqr) set_magic_quotes_runtime(1);
        ksort($packets, SORT_NUMERIC);
        $raw = implode('', $packets);                              // glue the packets together to make our final data string
        return $raw;
}

function query_challenge($ip, $port) {
    global $challenge;
    if (!$ip) return FALSE;
    $raw = _sendquery($ip, $port, $challenge);
    if (!$raw) return FALSE;
    if (!empty($raw)) {
       return substr($raw,5,5);
    }
    return "";
}

function maxretries() {
        return $retries >= 0 ? $conf['retries'] : 0;
}

function _connectsocket($ip, $port, $proto='udp')
{
        global $DEBUG, $timeout, $errno, $errstr;
        if ($DEBUG) print "DEBUG: Opening socket to $ip:$port >>><br>";
        $sock = @fsockopen("$proto://$ip", $port, $errno, $errstr);
        _set_timeout($timeout);
        return $sock;
}

function _set_timeout($seconds=5, $sock=NULL) {
        if (!$sock) $sock =& $sock;
        if (!$sock) return;
        if (function_exists('stream_set_timeout')) {                        // PHP >= 4.3.0
                stream_set_timeout($sock, $seconds);
        } elseif (function_exists('socket_set_timeout')) {                // this function is deprecated
                socket_set_timeout($sock, $seconds);
        }
}

// reads a null terminated string from the raw input
function _getnullstr(&$raw) {
        if (empty($raw)) return '';
        $end = strpos($raw, "\0");                        // find position of first null byte
        $str = substr($raw, 0, $end);                        // extract the string (excluding null byte)
        $raw = substr($raw, $end+1);                // remove the extracted string (including null byte)
        return $str;                                                // return our str (no null byte)
}

// reads a character from the raw input
function _getchar(&$raw) {
        return sprintf("%c", _getbyte($raw));
}

// reads a byte from the raw input
function _getbyte(&$raw)
{
if (empty($raw)) return '';
$byte = substr($raw, 0, 1);
$raw = substr($raw, 1);
return ord($byte);
}

// reads a short integer/word (2 bytes) from the raw input
function _getshort(&$raw) {
        if (empty($raw)) return '';
        $lo = _getbyte($raw);
        $hi = _getbyte($raw);
        $short = ($hi << 8) | $lo;
        return $short;
}

// reads a long integer (4 bytes) from the raw input
function _getlong(&$raw) {
        if (empty($raw)) return '';
        $lo = _getshort($raw);
        $hi = _getshort($raw);
        $long = ($hi << 16) | $lo;
        return $long;
}

function _getfloat(&$raw) {
        if (empty($raw)) return '';
        $f = @unpack("f1float", $raw);
        $raw = substr($raw, 4);
        return $f['float'];
}

function _getmicrotime()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}

function _unpack($type, $data)
{
  $ary = @unpack($type . '1value', $data);
  return $ary['value'];
}

function hexdump($string, $maxwidth=16) {
        $output = "";
        $curwidth = 1;
        $bytes = array();
               for ($i=0; $i<strlen($string); $i++) {
                $byte = ord($string[$i]);
                $bytes[] = $byte;
                $output .= sprintf("%02X ", $byte);
                if ($i+1 == strlen($string) and $curwidth != $maxwidth)
                {
                $padlen = ($maxwidth * 3) - (count($bytes) * 3);
                $output .= sprintf("%-{$padlen}s", " ");
                $curwidth = $maxwidth;
                }
                if ($curwidth >= $maxwidth)
                {
                        $output .= " ";
                        foreach ($bytes as $b)
                        {
                                if ($b <= 32 or $b >= 127)
                                {
                                        $output .= ".";
                                } else {
                                        $output .= chr($b);
                                }
                        }
                        $bytes = array();
                        $output .= "\n";
                        $curwidth = 1;
                }
                else
                {
                 $curwidth++;
                }
        }
        return $output;
}
$server= $_GET['ip']; $port= $_GET['port'];
$data=query_info($server, $port);
$players=query_players($server, $port);

if ($data['serveros']=="l") { $data['serveros']="Linux"; } else { $data['serveros']="Windows"; }
if ($data['serverlocked']=="0") { $data['serverlocked']="Нет"; } else { $data['serverlocked']="Да"; }
if ($data['modrunning']=="0") { $data['modrunning']="Незагружен"; } else { $data['modrunning']="Загружен"; }

//if ($data['modserveronly']){
if (file_exists("./maps/".$data['name'].".jpg")){
$show_map="<img src=\"maps/".$data['name'].".jpg\" width=\"150\" alt=\"Карта ".$data['map']."\" title=\"Карта ".$data['map']."\" />";
} else $show_map="<img src=\"maps/map_not_dir.jpg\" width=\"150\" alt=\"Карта не найдена\" title=\"Карта не найдена\" />";
//} else $show_map="<img src=\"/images/map/cs/map_not.jpg\" width=\"150\" alt=\"Нет соединения\" title=\"Нет соединения\" />";
$content .= "
<table width=\"99%\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">
<tr><td align=\"right\"><b>Имя сервера</b></td><td align=\"center\">".$data['int_ipport']."</td><td align=\"center\" rowspan=\"8\">".$show_map."</td></tr>
<tr><td align=\"right\"><b>Карта</b></b></td><td align=\"center\">".$data['name']."</td></tr>
<tr><td align=\"right\"><b>Игра</b></td><td align=\"center\">".$data['map']."</td></tr>
<tr><td align=\"right\"><b>Адрес</b></td><td align=\"center\">".$server.":".$port."</td></tr>
<tr><td align=\"right\"><b>Игроков / Макс</b></td><td align=\"center\">".$data['totalplayers']." / ".$data['maxplayers']."</td></tr>
<tr><td align=\"right\"><b>Пинг</b></td><td align=\"center\">".round(query_ping($server, $port))."</td></tr>
<tr><td align=\"right\"><b>Общий</b></td><td align=\"center\">".$data['serverlocked']."</td></tr>
<tr><td align=\"right\"><b>MOD</b></td><td align=\"center\">".$data['modrunning']."</td></tr>
</table><br />
";

$content .= "<table cellspacing=1 cellpadding=2 width='50%' align='center'><tr><td align=center>№</td><td align=center>Имя</td><td align=center>Фрагов</td><td align=center>В игре</td></tr> ";
if ($players['activeplayers'] > '0')
{
for ($i=0; $i<$players['activeplayers']; $i++) {
$timeonline=date("i:s",$players['players'][$i]['onlinetime']);
  $content .= "<tr><td align=center>".$players['players'][$i]['id']."</td><td align=center>".$players['players'][$i]['name']."</td><td align=center>".$players['players'][$i]['kills']."</td><td align=center>".$timeonline."</td></tr>";
  }
}
else
{
$content .= "<td colspan='4' align='center'><b>Сервер в данный момент пуст!</b></td></tr>";
}
$content .= "</table>";
print $content;
?>



Для 1.6

Код
<?
/*---------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------+
| CS Stat Panel v.1.0-панель вывода статистики КС
| Copyright © 2006 Pashtet ака Berezkin Pavel
| Mail: pashtetHK@gmail.com
+----------------------------------------------------+
| Скачали с w1rtel.blogspot.com
+----------------------------------------------------*/

$sock             = NULL;
$errno            = 0;
$errstr           = '';
$raw              = '';                             // raw data string
$data             = array();                        // array of parsed data from a query
$ping             = 0;                              // response time from last command sent/recv
$plrstr           = 'U';
$halflife_version = 1;                              // 0 = unknown version
$infostr          = 'TSource Engine Query'.chr(0);
$rulestr          = 'V';
$pingstr          = 'i';
$challenge        = 'W';

function query_info($ip, $port)
{
  global $infostr;
  if (!$ip) return FALSE;
  $start = _getmicrotime();
  $raw = _sendquery($ip, $port, $infostr);
  $end = _getmicrotime();
  if (!$raw) return FALSE;
  $data = array();                                        // query_info always resets the data array (so call this before other queries)
  if ($raw != '')
   {
    $data['ping'] = ceil(($end - $start) * 1000);        // return the time (ms) it took for the packet to return (ping)
    $data['ip']=$ip;
    $data['port']=$port;
    $data=_parse_info_halflife1($raw);
    return $data;
   }
return FALSE;
}

function _parse_info_halflife1($raw) {
        $raw = substr($raw, 5);                // strip off response header bytes
        $data['int_ipport']=_getnullstr($raw);
        list($data['int_ip'], $data['int_port'])= explode(':', $data['int_ipport']);
        $data['name']= _getnullstr($raw);
        $data['map']= _getnullstr($raw);
        $data['gamedir']= _getnullstr($raw);
        $data['gamename']= _getnullstr($raw);
        $data['totalplayers']= _getbyte($raw);
        $data['maxplayers']= _getbyte($raw);
        $data['protocol']= _getbyte($raw);        // 47
        $data['servertype']= _getchar($raw);
        $data['serveros']= _getchar($raw);
        $data['serverlocked']= _getbyte($raw);
        $data['modrunning']= _getbyte($raw);
        $data['modurl']= $data['modrunning'] ? _getnullstr($raw) : '';
        $data['modftp']= $data['modrunning'] ? _getnullstr($raw) : '';
        _getnullstr($raw);
        $data['modver']= _getshort($raw) . '.' . _getshort($raw);
        $data['modsize']= _getlong($raw);
        $data['modserveronly']= _getbyte($raw);
        $data['modclientdll']= _getbyte($raw);
        return $data;
}

// The sub-class must always contain this method to query the active players list
function query_players($ip, $port)
{
   global $plrstr;
   $raw =_sendquery($ip, $port, $plrstr.query_challenge($ip, $port));
   if (!$raw) return FALSE;
   if (!empty($raw))
        {
         $raw = substr($raw, 5);                // strip off response header bytes
         $data['activeplayers']= _getbyte($raw);
         $data['players']= array();
         for ($i=1; $i <= $data['activeplayers']; $i++)
          {
           if ($raw == '') break;
           $data['players'][] = array('id'=> _getbyte($raw),
                                      'name'=> _getnullstr($raw),
                                      'kills'=> _getlong($raw),
                                      'onlinetime'=> (int)_getfloat($raw));
          }
         $data['activeplayers'] = count($data['players']);
         return $data;
        }
        return FALSE;
}

function query_ping($ip, $port) {
         global $pingstr;
        if (!$ip) return FALSE;
        $start = _getmicrotime();
        $raw=_sendquery($ip, $port, $pingstr);
        $end = _getmicrotime();
        if ($raw == '')
        {
        return FALSE;
        }
        else
        {
        return ($end - $start) * 1000;
        }
}

function _sendquery($ip, $port, $cmd) {
        global $DEBUG;
        if (!$port) $port = '27015';
        $retry = 0;
        $oldmqr = get_magic_quotes_runtime();
        $sock=_connectsocket($ip, $port);
        if (!$sock)
        {
         trigger_error("Failed to connect to socket on $ip:$port", E_USER_WARNING);
         return FALSE;
        }
        $packets = array();                                        // stores each packet seperately, so we can combine them afterwards
        $command = pack("N", 0xFFFFFFFF) . $cmd;                   # . pack('x');
        $raw = "";

        if ($oldmqr) set_magic_quotes_runtime(0);
        if ($DEBUG) print "DEBUG: Sending query to $ip:$port:\n" . hexdump($command) . "<br>";
        fwrite($sock, $command, strlen($command));
        $expected = 0;
        do {
                $packet = fread($sock, 1500);
                if (strlen($packet) == 0)
                {
                  $retry++;
                  if ($DEBUG) print "DEBUG: Resending query $ip:$port:\n" . hexdump($command) . "<br>";
                  fwrite($sock, $command, strlen($command));
                  $expected = 1;
                  continue;
                }

                if ($DEBUG) print "DEBUG: Received " . strlen($packet) . " bytes from $ip:$port:\n" . hexdump($packet) . "<br>";

                $header = substr($packet, 0, 4);                                     // get the 4 byte header
                $ack = @unpack("N1split", $header);
                $split = sprintf("%u", $ack['split']);
                if ($DEBUG) print "DEBUG: ACK = " . sprintf("0x%X", $ack['split']) . "\n";
                if ($split == 0xFeFFFFFF)
                {                                                                    // we need to deal with multiple packets
                        $packet = substr($packet, 4);                                // strip off the leading 4 bytes
                        $header = substr($packet, 0, 5);                             // get the 'sub-header ack'
                        $packet = substr($packet, 5);                                // strip off 32bit int ID, seq# and total packet#
                        $info = @unpack("N1id/C1byte", $header);                     // we don't really care about the ID
                        if ($DEBUG) printf("DEBUG: Sub ACK: %X (%08b)\n", $info['byte'], $info['byte']);
                        if (!$expected) $expected = $info['byte'] & 0x0F;            // now we know how many packets to receive
                        $seq = (int)($info['byte'] >> 4);                            // get the sequence number of this packet
                        $packets[$seq] = $packet;                                    // store the packet
                        $expected--;
                }
                elseif ($split == 0xFFFFFFFF)
                {
                        $packets[0] = $packet;
                        $expected = 0;
                }
        }
     while ($expected and $retry < maxretries());

        fclose($sock);
        if ($oldmqr) set_magic_quotes_runtime(1);
        ksort($packets, SORT_NUMERIC);
        $raw = implode('', $packets);                              // glue the packets together to make our final data string
        return $raw;
}

function query_challenge($ip, $port) {
    global $challenge;
    if (!$ip) return FALSE;
    $raw = _sendquery($ip, $port, $challenge);
    if (!$raw) return FALSE;
    if (!empty($raw)) {
       return substr($raw,5,5);
    }
    return "";
}

function maxretries() {
        return $retries >= 0 ? $conf['retries'] : 0;
}

function _connectsocket($ip, $port, $proto='udp')
{
        global $DEBUG, $timeout, $errno, $errstr;
        if ($DEBUG) print "DEBUG: Opening socket to $ip:$port >>><br>";
        $sock = @fsockopen("$proto://$ip", $port, $errno, $errstr);
        _set_timeout($timeout);
        return $sock;
}

function _set_timeout($seconds=5, $sock=NULL) {
        if (!$sock) $sock =& $sock;
        if (!$sock) return;
        if (function_exists('stream_set_timeout')) {                        // PHP >= 4.3.0
                stream_set_timeout($sock, $seconds);
        } elseif (function_exists('socket_set_timeout')) {                // this function is deprecated
                socket_set_timeout($sock, $seconds);
        }
}

// reads a null terminated string from the raw input
function _getnullstr(&$raw) {
        if (empty($raw)) return '';
        $end = strpos($raw, "\0");                        // find position of first null byte
        $str = substr($raw, 0, $end);                        // extract the string (excluding null byte)
        $raw = substr($raw, $end+1);                // remove the extracted string (including null byte)
        return $str;                                                // return our str (no null byte)
}

// reads a character from the raw input
function _getchar(&$raw) {
        return sprintf("%c", _getbyte($raw));
}

// reads a byte from the raw input
function _getbyte(&$raw)
{
if (empty($raw)) return '';
$byte = substr($raw, 0, 1);
$raw = substr($raw, 1);
return ord($byte);
}

// reads a short integer/word (2 bytes) from the raw input
function _getshort(&$raw) {
        if (empty($raw)) return '';
        $lo = _getbyte($raw);
        $hi = _getbyte($raw);
        $short = ($hi << 8) | $lo;
        return $short;
}

// reads a long integer (4 bytes) from the raw input
function _getlong(&$raw) {
        if (empty($raw)) return '';
        $lo = _getshort($raw);
        $hi = _getshort($raw);
        $long = ($hi << 16) | $lo;
        return $long;
}

function _getfloat(&$raw) {
        if (empty($raw)) return '';
        $f = @unpack("f1float", $raw);
        $raw = substr($raw, 4);
        return $f['float'];
}

function _getmicrotime()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}

function _unpack($type, $data)
{
  $ary = @unpack($type . '1value', $data);
  return $ary['value'];
}

function hexdump($string, $maxwidth=16) {
        $output = "";
        $curwidth = 1;
        $bytes = array();
               for ($i=0; $i<strlen($string); $i++) {
                $byte = ord($string[$i]);
                $bytes[] = $byte;
                $output .= sprintf("%02X ", $byte);
                if ($i+1 == strlen($string) and $curwidth != $maxwidth)
                {
                $padlen = ($maxwidth * 3) - (count($bytes) * 3);
                $output .= sprintf("%-{$padlen}s", " ");
                $curwidth = $maxwidth;
                }
                if ($curwidth >= $maxwidth)
                {
                        $output .= " ";
                        foreach ($bytes as $b)
                        {
                                if ($b <= 32 or $b >= 127)
                                {
                                        $output .= ".";
                                } else {
                                        $output .= chr($b);
                                }
                        }
                        $bytes = array();
                        $output .= "\n";
                        $curwidth = 1;
                }
                else
                {
                 $curwidth++;
                }
        }
        return $output;
}
$server= $_GET['ip']; $port= $_GET['port'];
$data=query_info($server, $port);
$players=query_players($server, $port);

if ($data['serveros']=="l") { $data['serveros']="Linux"; } else { $data['serveros']="Windows"; }
if ($data['serverlocked']=="0") { $data['serverlocked']="Нет"; } else { $data['serverlocked']="Да"; }
if ($data['modrunning']=="0") { $data['modrunning']="Незагружен"; } else { $data['modrunning']="Загружен"; }

//if ($data['modserveronly']){
if (file_exists("./maps/".$data['map'].".jpg")){
$show_map="<img src=\"maps/".$data['map'].".jpg\" width=\"150\" alt=\"Карта ".$data['map']."\" title=\"Карта ".$data['map']."\" />";
} else $show_map="<img src=\"maps/map_not_dir.jpg\" width=\"150\" alt=\"Карта не найдена\" title=\"Карта не найдена\" />";
//} else $show_map="<img src=\"/images/map/cs/map_not.jpg\" width=\"150\" alt=\"Нет соединения\" title=\"Нет соединения\" />";
$content .= "
<table width=\"99%\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">
<tr><td align=\"right\"><b>Имя сервера</b></td><td align=\"center\">".$data['name']."</td><td align=\"center\" rowspan=\"8\">".$show_map."</td></tr>
<tr><td align=\"right\"><b>Карта</b></b></td><td align=\"center\">".$data['map']."</td></tr>
<tr><td align=\"right\"><b>Игра</b></td><td align=\"center\">".$data['gamename']."</td></tr>
<tr><td align=\"right\"><b>Адрес</b></td><td align=\"center\">".$data['int_ipport']."</td></tr>
<tr><td align=\"right\"><b>Игроков / Макс</b></td><td align=\"center\">".$data['totalplayers']." / ".$data['maxplayers']."</td></tr>
<tr><td align=\"right\"><b>Пинг</b></td><td align=\"center\">".round(query_ping($server, $port))."</td></tr>
<tr><td align=\"right\"><b>Общий</b></td><td align=\"center\">".$data['serverlocked']."</td></tr>
<tr><td align=\"right\"><b>MOD</b></td><td align=\"center\">".$data['modrunning']."</td></tr>
</table><br />
";

$content .= "<table cellspacing=1 cellpadding=2 width='50%' align='center'><tr><td align=center>№</td><td align=center>Имя</td><td align=center>Фрагов</td><td align=center>В игре</td></tr> ";
if ($players['activeplayers'] > '0')
{
for ($i=0; $i<$players['activeplayers']; $i++) {
$timeonline=date("i:s",$players['players'][$i]['onlinetime']);
  $content .= "<tr><td align=center>".$players['players'][$i]['id']."</td><td align=center>".$players['players'][$i]['name']."</td><td align=center>".$players['players'][$i]['kills']."</td><td align=center>".$timeonline."</td></tr>";
  }
}
else
{
$content .= "<td colspan='4' align='center'><b>Сервер в данный момент пуст!</b></td></tr>";
}
$content .= "</table>";
print $content;
?>


Причина: впредь используй спойлер.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя rendai
сообщение 1.2.2010, 19:23
Сообщение #2
Стаж: 17 лет

Сообщений: 97
Благодарностей: 2
Полезность: < 0

https://c-s.net.ua/forum/topic20257.html где обещанное видео??
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя The_Razer
сообщение 17.4.2010, 17:23
Сообщение #3
Стаж: 18 лет

Сообщений: 297
Благодарностей: 48
Полезность: 34

http://play.wktnet.ru/monitoring/index.php...&port=27015
Не могу понять почему не работает. Gateway timeout
Другие серверы могу мониторить...
(например http://play.wktnet.ru/monitoring/index.php...&port=27015 )
Это может быть связано с dproto ? У кого с dproto этот скрипт работает? :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pike
сообщение 19.4.2010, 17:37
Сообщение #4


Стаж: 18 лет

Сообщений: 956
Благодарности: выкл.

Цитата(The_Razer @ 17.4.2010, 18:23) *
Это может быть связано с dproto ? У кого с dproto этот скрипт работает? :)

Вполне. Попробуй этот, мониторит все.

Отредактировал: pike z, - 24.8.2010, 18:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя refeat
сообщение 24.8.2010, 16:59
Сообщение #5


Стаж: 16 лет

Сообщений: 47
Благодарностей: 16
Полезность: 261

Все робит в скрипт загляени...

тама вот так типо Site.ru/monitoring.php?ip=...&port=...

типо так!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя hachik
сообщение 27.8.2010, 4:10
Сообщение #6


Стаж: 16 лет

Сообщений: 286
Благодарностей: 46
Полезность: < 0

скрой скрипты под спойлер! неудобно совсем когда все громостко
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя refeat
сообщение 25.9.2010, 10:19
Сообщение #7


Стаж: 16 лет

Сообщений: 47
Благодарностей: 16
Полезность: 261

Мониторинг работает для CS 1.6 надо в файле в низу вписывать айпи и порт ,а в Source файле надо просто ?ip=...?port=...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: