<?php
$ip = '46.174.49.56'; //ip-адрес игрового сервера
$port = 8006; //порт на игровом сервере для подключения
$fp = fsockopen('udp://' . $ip, $port, $errno, $errstr);
stream_set_timeout($fp, 1, 0);
stream_set_blocking($fp, true);
if (!$fp) {
echo "Ошибка подключения: ".$errno." - ".$errstr;
} 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 "<b>$hostname</b><br/>Игроки: $plr_count/$max_plrs<br/>Мод: $gamemode<br/>Карта: $mapname<br/>Пароль:";
if ($is_passworded) {
echo "Есть";
} else {
echo "Нет";
}
fwrite($fp, $packet.'c');
fread($fp, 11);
$plr_count = ord(fread($fp, 2));
echo "<br/><br/>Игроки:<br/>";
if ($plr_count > 0) {
echo " <table bordercolor=\"#000000\" cellpadding=2 cellspacing=0 border=0 align=\"center\" width=98%>\n";
echo " <tr><td colspan=2 align=\"center\"><b>Игроки:</b></td></tr>\n";
echo " <tr><td align=\"center\"><b>Ник</b></td><td align=\"center\"><b>Счет</b></td></tr>\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>".$plrname."</td><td>".$score."</td></tr>";
}
echo "</table>";
}
fclose($fp);
}
?>