$info = chr(6).chr(0).chr(255).chr(255).'info';
$sock = @fsockopen("127.0.0.1", 7171, $errno, $errstr, 1);
if ($sock)
{
// Receive data from server
fwrite($sock, $info);
$data = '';
while (!feof($sock))
{
$data .= fgets($sock, 1024);
}
fclose($sock);
// parse server status information
preg_match('/players online="(\d+)" max="(\d+)"/', $data, $matches);
$server['status'] = 1;
$server['players_online'] = $matches[1];
$server['players_max'] = $matches[2];
// uptime
preg_match('/uptime="(\d+)"/', $data, $matches);
$h = floor($matches[1] / 3600);
$m = floor(($matches[1] - $h*3600) / 60);
$server['uptime'] = $h.'h '.$m.'m';
// monsters
preg_match('/monsters total="(\d+)"/', $data, $matches);
$server['monsters'] = $matches[1];
$server['last_check'] = time();
}
else
{
$server['status'] = 0;
$server['players_online'] = 0;
$server['players_max'] = 0;
$server['uptime'] = 0;
$server['last_check'] = time();
}