Monitoring
Server Statistic
include("./conf/config.inc.php"); include("./lang/$language.inc.php");
// if ($_GET['ip']) $ip = $_GET['ip'];
// if ($_GET['port']) $port = $_GET['port'];
if (!isset($ip))
$ip = $rcon_host;
if (!isset($port))
$port = $rcon_port ;
$fp = fsockopen('udp://' . $ip, $port, $errno, $errstr);
if (!$fp)
{
echo "
| Socket Error: $errno - $errstr |
\n";
}
else
{
$packet = 'SAMP';
$packet .= chr(strtok($ip, '.'));
$packet .= chr(strtok('.'));
$packet .= chr(strtok('.'));
$packet .= chr(strtok('.'));
$packet .= chr($port & 0xFF);
$packet .= chr($port >> 8 & 0xFF); fwrite($fp, $packet.'i');
fread($fp, 11);
$is_passworded = ord(fread($fp, 1));
$plr_count = ord(fread($fp, 2));
$max_plrs = ord(fread($fp, 2));
$strlen = ord(fread($fp, 4));
$hostname = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$gamemode = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$mapname = fread($fp, $strlen);
echo '
| ' . $hostname . ' |
'."\n";
echo ' | Players: | ' . $plr_count . ' / ' . $max_plrs . ' |
'."\n";
echo ' | GameMode: | ' . $gamemode . ' |
'."\n";
echo ' | Map: | ' . $mapname . ' |
'."\n";
if ($is_passworded)
{
echo ' | Password: | YES |
'."\n";
} else {
echo ' | Password: | NO |
'."\n";
} fwrite($fp, $packet.'c');
fread($fp, 11);
$plr_count = ord(fread($fp, 2));
if ($plr_count > 0)
{
echo '
'."\n";
echo '
'."\n";
echo ' | Players: |
'."\n";
echo ' | Player | Score |
'."\n";
for ($i=0; $i<$plr_count; $i++)
{
$strlen = ord(fread($fp, 1));
$plrname = fread($fp, $strlen);
$score = samp_getLong(fread($fp, 4));
echo ' | ' . $plrname . ' | ' . $score . ' |
'."\n";
}
}
fclose($fp);
}
?>
function samp_getLong($dat) {
$num=0;
if ((ord(substr($dat,3,1)) & 128) > 0) {
for ($i=0; $i
$num-=((255-ord(substr($dat,$i,1))) << 8*$i);
}
$num--;
} else {
for ($i=0; $i
$num+=(ord(substr($dat,$i,1)) << 8*$i);
}
}
return $num;
}