Можно к примеру ботом, а можно с помощью телнета.
Не совсем понятно что подразумевается под "его состоянием" если просто висит, или нет, то верхнее подходит.
<?php
$cfgServer = "192.168.15.100"; //ай пишник сервера
$cfgPort = '12345'; //порт телнета
$cfgTimeOut = 10; //задержка
$pass = "somePass"; //пароль для телнета
$usenet = fsockopen($cfgServer, $cfgPort);
if(!$usenet)
{
$online = "N/A";
$objects = "N/A";
$monsters = "N/A";
$npc = "N/A";
$uptime = "N/A";
$gms = "N/A";
}
else
{
fputs ($usenet, "$passrn");
fputs ($usenet, "statusrn");
fputs ($usenet, "exitrn");
fgets($usenet, 128) ;
fgets($usenet, 128) ;
fgets($usenet, 128) ;
fgets($usenet, 128) ;
fgets($usenet, 128) ;
$online = fgets($usenet, 128);
$objects = fgets($usenet, 128);
fgets($usenet, 128) ;
fgets($usenet, 128) ;
fgets($usenet, 128) ;
$monsters = fgets($usenet, 128) ;
fgets($usenet, 128) ;
fgets($usenet, 128) ;
$npc = fgets($usenet, 128) ;
fgets($usenet, 128) ;
fgets($usenet, 128) ;
fgets($usenet, 128) ;
fgets($usenet, 128) ;
fgets($usenet, 128) ;
$uptime = fgets($usenet, 128) ;
$gms = fgets($usenet, 128) ;
$online = substr($online,22); //Счетчик онлайна
$objects = substr($objects,22); //Обхектов
$monsters = substr($monsters,22); //Монстров
$npc = substr($npc,22); //НПС
$uptime = substr($uptime,22); //Время аптайма
$gms = substr($gms,22); //Гейм Мастеров в игре
}
$fgame = @fsockopen ("192.168.15.100",7777, $errno, $errstr, 1);
if ( $fgame )
$gstat = "
Online";
else
$gstat = "
Offline";
$flogin = @fsockopen ("192.168.15.100",2106, $errno, $errstr, 1);
if ( $flogin )
$lstat = "
Online[/br]";
else
$lstat = "
Offline";
?>
Real Status |
Игровой: | <?=$gstat?> |
Авторизация: | <?=$lstat?> |
Игроков онлайн: | <?=$online?> |
Гейм Мастеров в игре: | <?=$gms?> |
Компьютерных персонажей: | <?=$npc?> |
Монстров: | <?=$monsters?> |
Обсчитываемых объектов: | <?=$objects?> |
Времени с запуска сервера: | <?=$uptime?> |
Довольно удобный скрипт, для просмотра реального положения дел, например для тех серверов, кто занимается искуственным увеличением онлайна )).