Мануал Как получить статус сервера и его текущий онлайн?

croken

Рекрут
Участник
Сообщения
1
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
12
Собственно я знаю, что можно как-то получить статус сервера и его онлайн через auth.
Собственно вопрос в том - как?
Нагуглил такую функцию:

PHP:
public function GetStatusFromAuth()
   {
      $status = array();
      $f = @fsockopen($this->ip, $this->port, $errno, $errstr, $this->timeout);
      if ($f)
      {
         do
         {
            $sec = floor($this->timeout);
            $msec = ($this->timeout - $sec) * 1000;
            socket_set_timeout($f, $sec, $msec);

            $buf = fread($f, 2);
            if (strlen($buf) != 2) break;
            $a = unpack('vsize', $buf);
            $size = $a['size'] - 2;
            if ($size < 1) break;

            $buf = fread($f, $size);
            if (strlen($buf) != $size) break;

            fwrite($f, "\x03\x00\xFE", 3);

            $buf = fread($f, 2);
            if (strlen($buf) != 2) break;
            $a = unpack('vsize', $buf);
            $size = $a['size'] - 2;
            if ($size < 1) break;

            $buf = fread($f, $size);
            if (strlen($buf) != $size) break;

            if (ord($buf[0]) != 0xFE) break;
            if (strlen($buf) < 3) break;
            $amount = ord($buf[1]) + ord($buf[2]) * 256;
            $buf = substr($buf, 3);
            if (strlen($buf) != $amount * 4) break;
            $a = unpack('v' . ($amount * 2), $buf);
            for ($i = 0; $i < $amount; $i++) $status[$a[$i * 2 + 1]] = $a[$i * 2 + 2];
         }
         while (false);
         fclose ($f);
      }
      return $status;
   }
В логах auth пишет, что передана статистика, но передаёт всегда offline и онлайн 0...
 

Похожие темы

Сверху Снизу