Хочу что бы к меня на сайте отображался список игроков на нескольких серверах (2-3 моих и несколько серверов партнёров).
Сами сервера мониторю так:
$socket = @fsockopen("udp://".$ip, $queryport , $errno, $errstr, 1);
stream_set_timeout($socket, 1);
stream_set_blocking($socket, TRUE);
fwrite($socket, "\xFF\xFF\xFF\xFF\x54Source Engine Query\x00");
$response = fread($socket, 4096);
@fclose($socket);
$packet = explode("\x00", substr($response, 6), 5);
$server = array();
echo "<pre>";
var_dump($packet);
echo "</pre>";
$server['name'] = $packet[0];
$server['map'] = $packet[1];
$server['game'] = $packet[2];
$server['description'] = $packet[3];
$inner = $packet[4];
$server['players'] = ord(substr($inner, 2, 1));
$server['playersmax'] = ord(substr($inner, 3, 1));
$server['password'] = ord(substr($inner, 7, 1));
$server['vac'] = ord(substr($inner, 8, 1));
Работает безотказно, да вот беда в том что больше инфы сервер не даёт.
1) Возможно как-то по другому к нему нужно обратится?
fwrite($socket, "тут другое");
2) Или можно иначе получить список игроков? (обязательно без rcon)
НИКАКОЙ документации я не нашёл. Долго искал прежде чем писать тут.
Так что если кто знает, подскажите пожалуйста.
P.S. ДА! Список игроков получить можно! 100% инфа. Видел на сайтах и не раз. Вот к примеру на мониторинге (не реклама) ( вкладка "игроки на сервере" gamemonitoring.net/server/109.95.212.40:28015 )
P.S.S RUST - имеется ввиду игра а не язык программирования