<html>
<head>
<title>Server Statistics</title>
<style type="text/css">
body {
background: #22202F;
color: #07BFFF;
text-color: #472929;
background-color: #006666;
}
a:link {
color: #07BFFF;
}
td.border {
width: 50%;
background: #4F487C;
color: #07BFFF;
border: 1px solid #100C16;
}
table.theader {
background:#7B97EB;
width: 40%;
margin:0 auto;
padding: 3px 1px 3px 1px;
text-align:center;
}
table.playerHeader {
background:#100C16;
border: 2px solid #7B97EB;
width: 40%;
margin:0 auto;
padding: 3px 1px 3px 1px;
text-align:center;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<br />
<div style="text-align:center;">
<b><font color="#ffffff">SA:MP Server Info</font></b>
<br /><br />
<table class="theader">
<?php
//Defaults
if (!isset($_GET['ip'])) {
$ip = '91.121.6.5';
}
else {
$ip = $_GET['ip'];
}
if (!isset($_GET['port'])) {
$port = 7777;
}
else {
$port = $_GET['port'];
}
$fp = fsockopen('udp://' . $ip, $port, $errno, $errstr);
if (!$fp) {
echo '<tr><td class="border">Socket Error: $errno - $errstr</td></tr>\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);
if (strlen($hostname) < 1) {
echo 'Server IP ' . $ip . ' is not online.';
}
else {
echo '<table class="theader"><tr><td style="width:100%;"><b>' . $hostname . '<br />' . $ip . ":" . $port . '</b></td></tr></table><br />'."\n";
echo '<table class="theader"><tr><td class="border">Players: </td><td class="border">' . $plr_count . ' / ' . $max_plrs . '</td></tr>' . "\n";
echo '<tr><td class="border">GameMode: </td><td class="border">' . $gamemode . '</td></tr>'."\n";
echo '<tr><td class="border">MapName: </td><td class="border">' . $mapname . '</td></tr>'."\n";
if ($is_passworded) {
echo '<tr><td class="border">Using Password: </td><td class="border">Yes</td></tr>' . "\n";
}
else {
echo '<tr><td class="border">Using Password: </td><td class="border">No</td></tr></table>' . "\n";
}
echo "<br /><br />";
fwrite($fp, $packet.'c');
fread($fp, 11);
$plr_count = ord(fread($fp, 2));
if ($plr_count > 0) {
echo '<table class="playerHeader"><tr><td style="width: 50%;"><b>Player</b></td><td style="width: 50%;"><b>Score</b></td></tr></table>' . "\n";
echo '<table class="theader">' . "\n";
for ($i = 0; $i < $plr_count; $i++) {
$strlen = ord(fread($fp, 1));
$plrname = fread($fp, $strlen);
$score = ord(fread($fp, 4));
echo '<tr><td class="border">' . $plrname . '</td><td class="border">' . $score . '</td></tr>' . "\n";
}
}
else {
echo '<tr><td class="border"><b>No players currently online!</b></td></tr>' . "\n";
}
fclose($fp);
}
}
?>
</table>
</div>
<br />
</body>
</html>
Comments