<?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);
}
?>