Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

[PHP] Мониторинг игровых серверов

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> [PHP] Мониторинг игровых серверов
Имя
Сообщение << Старые топики   Новые топики >>
[PHP] Мониторинг игровых серверов - 2010-01-24 15:56:30.700000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
Набор классов для мониторинга игровых серверов.
Поддерживаемые игры:
  • Counter-Strike 1.6 (48, 47, dproto)
  • Counter-Strike: Source
  • Counter-Strike: Condition Zero
  • Day of Defeat
  • Day of Defeat Source
  • Half Life (1, 2)
  • Garry's Mod
  • Team Fortress (1, 2)
  • Zombie Panic
  • Quake (2, 3)

  • Скрипт должен работать со всеми играми на движках Source, GoldSource, Tech 2, Tech 3.

    Так же есть класс для RCON'a серверов CS 1.6.

    Скачать: http://narod.ru/disk/20398828000/monitoring.zip.html

    ps:
    1. на юкозе и подобных системах нет поддержки php скриптов. Мониторинг там работать не будет!
    2. Для серваков на движке сурс может понадобиться библиотека bzip2.
    3. PHP 5
    4. Помощь в установке и настройке не осуществляю.
    Post #: 1
    RE: [PHP] Мониторинг игровых серверов - 2010-01-24 19:45:08.220000   
    va5il

    Сообщений: 1
    Оценки: 0
    Присоединился: 2010-01-21 18:52:28.913333
    О… е… Спасибо ;)
    Post #: 2
    RE: [PHP] Мониторинг игровых серверов - 2010-02-15 19:41:48.256666   
    LudV1X

    Сообщений: 2
    Оценки: 0
    Присоединился: 2009-12-02 19:43:23.573333
    я переделал ваш класс для учета пинга на сервере и добавил свой таймаут при соединении

    функция conect в ServerQueries.php

    quote:

    public function connect($address, $port) {
    self::disconnect();
    $this-&gt;port = (int)$port;
    $this-&gt;ip = @gethostbyname($address);

    //My
    global $timeout;
    /////

    if($this-&gt;resource = @fsockopen('udp://' . $this-&gt;ip, $this-&gt;port, $errno, $errstr, 1 ) ) {
    $this-&gt;connected = true;
    stream_set_timeout($this-&gt;resource, 0, $timeout);
    }
    return $this-&gt;connected;
    }


    функция getInfo в SourceServerQueries.php

    quote:

    public function getInfo() {
    if( !$this-&gt;connected )
    return false;
    $return = array();

    //My
    $this-&gt;timeStart = $this-&gt;getmicrotime();
    //====

    $this-&gt;send("\xFF\xFF\xFF\xFFTSource Engine Query\x00");

    if($tmp = $this-&gt;read(true)) {

    //My
    $return['ping'] = (int)(($this-&gt;getmicrotime() - $this-&gt;timeStart)*1000);
    //==== и т.д.


    quote:

    public function getmicrotime()
    {
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
    }


    в результате у меня выдает пинг по 400 хотя при пинговке из командной строки выдает 45-55
    $timeout был 350 000

    затем поставил $timeout 100 000 - выдает 140
    а в коммандной строке все те же 45-55

    НЕ пойму в чем дело. в предыдущей версси, которую вы выкладыали я делал схожим образом все было норм.
    Подскажите пожйлуста. Я думаю что все дело в protected function read($many_packets = false) .
    ЛИБО Я СИЛЬНО ТУПЛЮ.

    Заранее благодарен.
    Post #: 3
    RE: [PHP] Мониторинг игровых серверов - 2010-02-15 21:53:32.583333   
    LudV1X

    Сообщений: 2
    Оценки: 0
    Присоединился: 2009-12-02 19:43:23.573333
    исправил, но так и не понял в чем ошибка.
    Заменил

    quote:

    //My
    $this-&gt;timeStart = $this-&gt;getmicrotime();
    //====

    $this-&gt;send("\xFF\xFF\xFF\xFFTSource Engine Query\x00");

    if($tmp = $this-&gt;read(true)) {

    //My
    $return['ping'] = (int)(($this-&gt;getmicrotime() - $this-&gt;timeStart)*1000);
    //==== и т.д.


    на

    quote:

    $this-&gt;timeStart=$this-&gt;getmicrotime();
    fwrite( $this-&gt;resource, "\xFF\xFF\xFF\xFFTSource Engine Query\0" );
    fread( $this-&gt;resource, 4 );
    $status = socket_get_status( $this-&gt;resource );
    if( $status['unread_bytes'] &gt; 0 ) {
    $this-&gt;raw = fread( $this-&gt;resource, $status['unread_bytes'] );
    $return['ping'] = (int)(($this-&gt;getmicrotime() - $this-&gt;timeStart)*1000);
    $tmp = $this-&gt;getByte();

    пинги прошли
    Post #: 4
    RE: [PHP] Мониторинг игровых серверов - 2010-02-15 22:11:37.443333   
    oRb

    Сообщений: 4044
    Оценки: 597
    Присоединился: 2007-03-28 18:45:06.630000
    Там будет задержка из мультипротокола. Тк обычные сервера посылают только 1 ответ, мультипротокольные серваки отсылают целых 3! Поэтому я решил считывать информацию из сокета до истечения таймаута. Из-за этого и получается польшой пинг. Если вы не используете мультипротокол или не собираетесь посылать еще запросы к серверу, тогда просто замените
    if($tmp = $this-&gt;read(true)) { на
    if($tmp = $this-&gt;read()) {
    Post #: 5
    RE: [PHP] Мониторинг игровых серверов - 2010-02-16 00:08:37.483333   
    Agent Smith

    Сообщений: 976
    Оценки: 0
    Присоединился: 2007-04-10 21:56:49.593333
    http://forum.xakep.ru/m_1470939/mpage_1/key_%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3%d0%b0/tm.htm#1471237
    :)
    Post #: 6
    RE: [PHP] Мониторинг игровых серверов - 2010-03-02 22:32:10.396666   
    RFXX

    Сообщений: 5
    Оценки: 0
    Присоединился: 2010-03-02 22:26:25.860000
    Можно как-то получить террористов, контров и спектатров которые находятся на сервере?
    Post #: 7
    RE: [PHP] Мониторинг игровых серверов - 2010-03-03 09:39:00.386666   
    oRb

    Сообщений: 4044
    Оценки: 597
    Присоединился: 2007-03-28 18:45:06.630000
    нет.
    Post #: 8
    RE: [PHP] Мониторинг игровых серверов - 2010-03-03 10:48:44.036666   
    AdReNaL1Ne

    Сообщений: 8027
    Оценки: 350
    Присоединился: 2005-09-11 06:38:05
    Этим скриптом - нет, нужен бот, который будет висеть на сервере
    Post #: 9
    RE: [PHP] Мониторинг игровых серверов - 2010-03-04 07:17:06.106666   
    RFXX

    Сообщений: 5
    Оценки: 0
    Присоединился: 2010-03-02 22:26:25.860000
    А можно еще получить текущий пинг игрока и количество смертей? Или для этого тоже бот нужен?
    Post #: 10
    RE: [PHP] Мониторинг игровых серверов - 2010-03-04 11:03:51.916666   
    oRb

    Сообщений: 4044
    Оценки: 597
    Присоединился: 2007-03-28 18:45:06.630000
    Пинг можно получить через команду status, используя rcon.
    Post #: 11
    RE: [PHP] Мониторинг игровых серверов - 2010-03-04 16:36:00.046666   
    RFXX

    Сообщений: 5
    Оценки: 0
    Присоединился: 2010-03-02 22:26:25.860000
    Так для команды status вроде ркон не нужен. Можете сделать если не затруднит, сделал бы сам, но в пхп несилен.
    fwrite( $this->resource, "\xFF\xFF\xFF\xFFTSource Engine Query\0" ); Если я правильно понял, то здесь мы отправляем запрос серверу, а через fread получаем ответ сервера, не могу понять что мы отправляем серверу - "\xFF\xFF\xFF\xFFTSource Engine Query\0" Разъясните пожалуйста, может и сам смогу сделать)
    Post #: 12
    RE: [PHP] Мониторинг игровых серверов - 2010-03-04 17:35:47.613333   
    oRb

    Сообщений: 4044
    Оценки: 597
    Присоединился: 2007-03-28 18:45:06.630000
    http://developer.valvesoftware.com/wiki/Server_queries
    Post #: 13
    RE: [PHP] Мониторинг игровых серверов - 2010-03-04 17:53:48.306666   
    RFXX

    Сообщений: 5
    Оценки: 0
    Присоединился: 2010-03-02 22:26:25.860000
    Не доглядел, нашел как получить через rcon). Без ркона я так понимаю никак?
    Post #: 14
    RE: [PHP] Мониторинг игровых серверов - 2010-03-04 22:00:44.770000   
    AdReNaL1Ne

    Сообщений: 8027
    Оценки: 350
    Присоединился: 2005-09-11 06:38:05
    Да почему никак-то? Ты же в кс когда пишешь status в консоле, у тебя норм отображается статистика
    Post #: 15
    RE: [PHP] Мониторинг игровых серверов - 2010-03-05 10:32:25.823333   
    RFXX

    Сообщений: 5
    Оценки: 0
    Присоединился: 2010-03-02 22:26:25.860000
    Значит можно). Помогите переделать, я пробывал, в функции connect убирал 3 параметр - пароль, изменял пакет, но что-то не получилось

    &lt;?php class cstrikeRcon extends ServerQueries{ protected $password; protected $challenge_number; final public function connect($address, $port, $password) { $this-&gt;password = $password; return parent::connect($address, $port); } public function command($command) { if(!$this-&gt;connected) return false; if(empty($this-&gt;challenge_number)) $this-&gt;challenge_number = $this-&gt;getChallenge(); $packet = "\xff\xff\xff\xffrcon " . $this-&gt;challenge_number . " \"" . $this-&gt;password . "\" " . $command . "\n"; $this-&gt;send($packet); $this-&gt;read(true); $this-&gt;raw = str_replace("\xFF\xFF\xFF\xFF\x6c", '', $this-&gt;raw); $this-&gt;getByte(); return $this-&gt;raw; } private function getChallenge() { if( !$this-&gt;connected ) return false; $this-&gt;send("\xff\xff\xff\xffchallenge rcon\n"); $this-&gt;read(); $return = explode(' ', $this-&gt;raw); return trim($return[2]); } protected function read($many_packets = false) { if($many_packets) { parent::read(true); $this-&gt;getLong(); } else { parent::read(); if($this-&gt;getLong() == -2) { $requestId = $this-&gt;getLong(); $pacets = $this-&gt;getByte(); $tmp = $this-&gt;getLong(); if($requestId &lt; 0) { $this-&gt;getLong(); $this-&gt;getByte(); $this-&gt;raw = substr(bzdecompress($this-&gt;raw), 4); } elseif(($tmp &lt; 0) && (substr($this-&gt;raw, 0, 3) == "\xFF\xFF\xFF")) $this-&gt;raw = substr($this-&gt;raw, 3); $tmp = $this-&gt;raw; for ($i = 1; $i &lt; $pacets; $i++) { parent::read(); $this-&gt;raw = $tmp . substr($this-&gt;raw, 9); $tmp = $this-&gt;raw; } } } return true; } } ?&gt;
    Post #: 16
    RE: [PHP] Мониторинг игровых серверов - 2010-05-04 16:14:20.413333   
    rbt2008

    Сообщений: 1
    Оценки: 0
    Присоединился: 2010-05-04 16:12:26.260000
    А можно перезалить скрипты, по ссылке http://www.x2b.ru/get/72368 ничего не находит.
    Post #: 17
    RE: [PHP] Мониторинг игровых серверов - 2010-05-04 20:53:26.263333   
    oRb

    Сообщений: 4044
    Оценки: 597
    Присоединился: 2007-03-28 18:45:06.630000
    обновил первый пост
    Post #: 18
    RE: [PHP] Мониторинг игровых серверов - 2010-05-08 23:44:15.636666   
    john smith2

    Сообщений: 6
    Оценки: 0
    Присоединился: 2010-05-08 23:28:48.293333
    Орб, подскажи такую штуку. Юзаю вот такой кусок скрипта:
    $server="91.211.116.10"; //сдесь ip сервера $qw=chr(32); $fp = fsockopen ("udp://".$server,27017, $errno, $errstr); if (!$fp) { echo "ERROR: $errno - $errstr&lt;br&gt;\n"; } else { fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0"); stream_set_timeout($fp,6); $st=fread($fp,1); $r=socket_get_status($fp); $r=$r["unread_bytes"]; $st.=fread($fp,$r);
    В итоге получаю string(98) "����m127.0.0.1:27016�NoN-STOP Server�aim_aggro�cstrike�Counter-Strike�/dw��������������"
    14
    это если скрипт запускаю на хостинге. Если же на локалке (Апач 2.2 + пхп 5 свежие), то такое: string(117) "����m127.0.0.1:27016\0NoN-STOP Server\0aim_aggro\0cstrike\0Counter-Strike\0/dw\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
    48
    как видишь - разная длина строки. изза чего это? распарсить не получается изза этого. Кодировка файла утф. Настройки как у хостера.
    Post #: 19
    RE: [PHP] Мониторинг игровых серверов - 2010-05-09 09:38:17.406666   
    oRb

    Сообщений: 4044
    Оценки: 597
    Присоединился: 2007-03-28 18:45:06.630000
    Выполните var_dump(ini_get('mbstring.func_overload')); на обоих серверах.
    Если где-то будет не ноль, тогда надо будет поменять эту настройку в конфиге.
    Post #: 20
    RE: [PHP] Мониторинг игровых серверов - 2010-05-09 09:47:11.600000   
    john smith2

    Сообщений: 6
    Оценки: 0
    Присоединился: 2010-05-08 23:28:48.293333
    string(1) "0"
    возвращает и хостер, и локалный. Хотя библиотека mbstring и там и там включена.
    В этом проблема? Просто должно же быть какоето однообразие - или и там и там не работает (раз оба ноль возвращают) или и там и там пашет.
    Post #: 21
    RE: [PHP] Мониторинг игровых серверов - 2010-05-09 15:02:13.150000   
    oRb

    Сообщений: 4044
    Оценки: 597
    Присоединился: 2007-03-28 18:45:06.630000
    Кстати, в вашем первом посте вывод не соответствует коду.
    Только что пришло в голову: у вас локале похоже включено magic_quotes_runtime.
    Post #: 22
    RE: [PHP] Мониторинг игровых серверов - 2010-05-09 20:26:16.320000   
    john smith2

    Сообщений: 6
    Оценки: 0
    Присоединился: 2010-05-08 23:28:48.293333
    Да елки-палки))) БОЛЬШОЕ спасибо, точняк про кавычки забыл. Почемуто не подумал, что данные с сокета тоже будут экранироваться. Еще раз спасибо, многих спрашивал - никто не догадался ;)
    Post #: 23
    RE: [PHP] Мониторинг игровых серверов - 2010-06-03 23:15:12.660000   
    john smith2

    Сообщений: 6
    Оценки: 0
    Присоединился: 2010-05-08 23:28:48.293333
    oRb
    Привет. Еще одна проблемка.

    \xFF\xFF\xFF\xFF\x55\xFF\xFF\xFF\xFF
    \xFF\xFF\xFF\xFF\x57
    \xFF\xFF\xFF\xFF\x70\x6C\x61\x79\x65\x72\x73

    Любым из этих запросов пытаюсь получиться инфу о игроках (cs 1.6), но серв ничего не возвращает. Точнее так - иногда все норм отдает, а иногда полностью ничего . Имею ввиду, что один определенный сервер как бы "не против" отдавать такую инфу на один из этих запросов, а другие как будто запретили это. (50 на 50). Серв точно доступен, захожу на него, вижу что норм работает, но инфу с него не отдает. Именно траблы с инфой о игроках, о серве инфа - нормально отдается. Для теста, нашел тот же серв (да и много тех которые не "отзывают) на game-monitor.com, у них все пашет. В чем вобщем проблема? В твоем скрипте тоже самое 50 на 50.


    function get_players2($ip, $port)
    {
        $fp = @fsockopen("udp://".$ip, $port);
        if (!$fp)
        {
            return false;
        }
        else
        {
            stream_set_timeout($fp, 0, 400000);
            stream_set_blocking($fp, true);
            $getchallengenumber = "\xFF\xFF\xFF\xFF\x57";
            fwrite($fp, $getchallengenumber);
            $tmp = fread($fp, 12);
           
            if(empty($tmp))
            {
                return false;
            }

    Вот одни на условие if(empty($tmp)) возвращают false, а другие нормально дальше продолжают читать.
    Post #: 24
    RE: [PHP] Мониторинг игровых серверов - 2010-06-04 10:53:02.213333   
    oRb

    Сообщений: 4044
    Оценки: 597
    Присоединился: 2007-03-28 18:45:06.630000
    john smith2, когда задаете вопрос, постарайтесь сообщить больше информации. Вы хотя бы написали бы адреса серверов, а то я могу только гадать, что у вас за проблема возникла.

    http://developer.valvesoftware.com/wiki/Server_Queries
    http://developer.valvesoftware.com/wiki/Talk:Server_Queries#A2S_SERVERQUERY_GETCHALLENGE_not_working_since_last_HLDS_update

    Если в этом дело, то тогда вы где-то ошиблись, так как моя библиотека нормально работает с 48 протоколом (только что перепроверил).
    Post #: 25
    RE: [PHP] Мониторинг игровых серверов - 2010-06-04 14:22:20.596666   
    john smith2

    Сообщений: 6
    Оценки: 0
    Присоединился: 2010-05-08 23:28:48.293333
    Потестил еще раз, все также.
    Сервера, на которых НЕ рабботает правильно (отдает только инфу о сервере, о игроках - пустой массив):
    78.26.165.60:27015
    Array ( [version] => 7 [name] => SD [Odessa] Public CS:S Server (.:HISHNIK:.) [map] => cs_assault [directory] => cstrike [desсriрtion] => Counter-Strike: Source [players] => 25 [max_players] => 26 [bots] => 0 [os] => Windows [password] => no [secure] => yes ) Array ( ) Array ( )
     
    91.208.65.66:27015
    Array ( [name] => ALFA-STRIKE | CLASSIC [map] => de_cbble [directory] => cstrike [desсriрtion] => CLASSIC [players] => 26 [max_players] => 32 [version] => 47 [os] => Linux [password] => no [secure] => yes [bots] => 0 ) Array ( ) Array ( )
     
    91.198.83.42:27015
    Array ( [name] => ITK CS SERVER [map] => de_aztec [directory] => cstrike [desсriрtion] => [Public 24/7] [players] => 25 [max_players] => 32 [version] => 47 [os] => Windows [password] => no [secure] => no [bots] => 0 ) Array ( ) Array ( )
     
    77.120.114.60:27015, 91.211.116.10:27022, 217.147.162.214;27015


    А на вот этих все норм - игроки, инфа, рулесы:
    77.120.121.158:27015, 195.5.17.163:27015


    Вдобавок настройки приведу:
    DefaultLanguage ru
    AddDefaultCharset utf-8

    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1



    php_flag magic_quotes_gpc Off
    php_flag magic_quotes_runtime Off
    php_flag register_globals Off


    Options -Indexes
    RewriteEngine on
    Options +FollowSymLinks

    По поводу ссылок выше - то инфу по запросам брал с http://int64.org/docs/gamestat-protocols/
    Post #: 26
    RE: [PHP] Мониторинг игровых серверов - 2010-06-04 15:31:53.180000   
    oRb

    Сообщений: 4044
    Оценки: 597
    Присоединился: 2007-03-28 18:45:06.630000
    видимо у вас проблемы с соединением, так как у меня работает:
    78.26.165.60:27015 Array ( [version] =&gt; 7 [serverName] =&gt; SD [Odessa] Public CS:S Server (.:HISHNIK:.) [mapName] =&gt; cs_italy_tactik2 [gameDir] =&gt; cstrike [gameDesc] =&gt; Counter-Strike: Source [playerNumber] =&gt; 22 [maxPlayers] =&gt; 26 [botNumber] =&gt; 0 [operatingSystem] =&gt; Windows [passwordProtected] =&gt; [secureServer] =&gt; 1 ) Array ( [0] =&gt; Array ( [name] =&gt; \\po-50\\ &lt;&lt;::FRAG::&gt;&gt; [score] =&gt; 5 [time] =&gt; 00:13:00 ) [1] =&gt; Array ( [name] =&gt; ХруМ ХруМ [score] =&gt; -1 [time] =&gt; 00:07:16 ) [2] =&gt; Array ( [name] =&gt; АГЕНТ™ [score] =&gt; 1 [time] =&gt; 00:20:10 ) [3] =&gt; Array ( [name] =&gt; q_23 aka Belka [score] =&gt; 4 [time] =&gt; 00:08:11 ) [4] =&gt; Array ( [name] =&gt; [H.A.W.K.] team | M!X@ [score] =&gt; 14 [time] =&gt; 01:11:16 ) [5] =&gt; Array ( [name] =&gt; \\po-50\\Sm@ckdown! [score] =&gt; 9 [time] =&gt; 00:29:07 ) [6] =&gt; Array ( [name] =&gt; *&lt;&gt;* [score] =&gt; 1 [time] =&gt; 00:07:29 ) [7] =&gt; Array ( [name] =&gt; _XO4Y_HA_KYBY_ [score] =&gt; 36 [time] =&gt; 01:11:14 ) [8] =&gt; Array ( [name] =&gt; [The Joker] [score] =&gt; 6 [time] =&gt; 00:15:48 ) [9] =&gt; Array ( [name] =&gt; Leila [score] =&gt; 26 [time] =&gt; 01:03:56 ) [10] =&gt; Array ( [name] =&gt; Бомж-в-атаке | DertaS [score] =&gt; 23 [time] =&gt; 00:38:52 ) [11] =&gt; Array ( [name] =&gt; ¸,ø¤º°MǻNđRξK°º¤ø, [score] =&gt; 10 [time] =&gt; 00:30:00 ) [12] =&gt; Array ( [name] =&gt; ExTaz [score] =&gt; 36 [time] =&gt; 01:11:12 ) [13] =&gt; Array ( [name] =&gt; samlab [score] =&gt; 10 [time] =&gt; 00:38:15 ) [14] =&gt; Array ( [name] =&gt; ىn1kØ^™ [score] =&gt; 3 [time] =&gt; 00:31:49 ) [15] =&gt; Array ( [name] =&gt; Abver* [score] =&gt; 25 [time] =&gt; 00:53:25 ) [16] =&gt; Array ( [name] =&gt; \\sanias{by eX}// [score] =&gt; 16 [time] =&gt; 00:46:40 ) [17] =&gt; Array ( [name] =&gt; RAMZES [score] =&gt; 3 [time] =&gt; 00:11:09 ) [18] =&gt; Array ( [name] =&gt; the Game [score] =&gt; 0 [time] =&gt; 00:09:22 ) [19] =&gt; Array ( [name] =&gt; \\po-50\\ KILLER [score] =&gt; 3 [time] =&gt; 00:26:32 ) [20] =&gt; Array ( [name] =&gt; [score] =&gt; [time] =&gt; 00:00:00 ) [21] =&gt; Array ( [name] =&gt; [score] =&gt; [time] =&gt; 00:00:00 ) ) Array ( [sm_tick100mapfix_version] =&gt; 1.4.36 [res_ver] =&gt; 1.4.1 beta [addon_manager_ver] =&gt; 1.5 [hostage_godmode] =&gt; v1.0 [hailmary_version] =&gt; 1.5 [exploit] =&gt; 3.0 [sd_version] =&gt; 2.0 by L'In20Cible [knifep3n] =&gt; 4.6.2 [DeToCs] =&gt; 1.2 [es_corelib_ver] =&gt; 2.0.0.250i [mattie_eventscripts] =&gt; 1 [eventscripts_ver] =&gt; 2.0.0.250 [est_version] =&gt; 0.420 [daf_version] =&gt; Version 3 of SourceOP.com DoS Attack Fix Plugin [mp_teamplay] =&gt; 0 [mp_fraglimit] =&gt; 0 [mp_falldamage] =&gt; 1 [mp_weaponstay] =&gt; 0 [mp_forcerespawn] =&gt; 1 [mp_footsteps] =&gt; 1 [mp_flashlight] =&gt; 1 [mp_autocrosshair] =&gt; 0 [decalfrequency] =&gt; 10 [mp_teamlist] =&gt; hgrunt,scientist [mp_allowNPCs] =&gt; 1 [mp_friendlyfire] =&gt; 1 [sv_gravity] =&gt; 800 [sv_stopspeed] =&gt; 75 [sv_noclipaccelerate] =&gt; 5 [sv_noclipspeed] =&gt; 5 [sv_specaccelerate] =&gt; 3 [sv_specspeed] =&gt; 3 [sv_specnoclip] =&gt; 1 [sv_maxspeed] =&gt; 320 [sv_accelerate] =&gt; 5 [sv_airaccelerate] =&gt; 10 [sv_wateraccelerate] =&gt; 10 [sv_waterfriction] =&gt; 1 [sv_footsteps] =&gt; 1 [sv_rollspeed] =&gt; 200 [sv_rollangle] =&gt; 0 [sv_friction] =&gt; 4 [sv_bounce] =&gt; 0 [sv_stepsize] =&gt; 18 [r_VehicleViewDampen] =&gt; 1 [r_JeepViewDampenFreq] =&gt; 7.0 [r_JeepViewDampenDamp] =&gt; 1.0 [r_JeepViewZHeight] =&gt; 10.0 [r_AirboatViewDampenFreq] =&gt; 7.0 [r_AirboatViewDampenDamp] =&gt; 1.0 [r_AirboatViewZHeight] =&gt; 0.0 [mp_timelimit] =&gt; 0 [sv_alltalk] =&gt; 0 [mp_dynamicpricing] =&gt; 1 [nextlevel] =&gt; [mp_autoteambalance] =&gt; 1 [mp_maxrounds] =&gt; 0 [mp_roundtime] =&gt; 2 [mp_freezetime] =&gt; 2 [mp_c4timer] =&gt; 35 [mp_limitteams] =&gt; 1 [mp_hostagepenalty] =&gt; 0 [sm_nextmap] =&gt; de_cbble [sourcemod_version] =&gt; 1.2.3 [mani_reserve_slots] =&gt; 1 [mani_admin_plugin_version] =&gt; 1.2T SMM [mani_tickrate] =&gt; 100 [mani_nextmap] =&gt; cs_office [stripper_version] =&gt; 1.2.1 [dosp_version] =&gt; 1.0.0.0 [detox_version] =&gt; 1.1 [detox_ruleversion] =&gt; 10 [detox_build] =&gt; 24 [metamod_version] =&gt; 1.8.1 [sv_voiceenable] =&gt; 1 [sv_contact] =&gt; [sv_pausable] =&gt; 0 [sv_cheats] =&gt; 0 [coop] =&gt; 0 [deathmatch] =&gt; 1 [tv_password] =&gt; 0 [tv_relaypassword] =&gt; 0 [sv_password] =&gt; 0 ) 91.208.65.66:27015 Array ( [serverName] =&gt; ALFA-STRIKE | CLASSIC [mapName] =&gt; de_dust4ever [gameDir] =&gt; cstrike [gameDesc] =&gt; CLASSIC [playerNumber] =&gt; 24 [maxPlayers] =&gt; 32 [version] =&gt; 47 [operatingSystem] =&gt; Linux [passwordProtected] =&gt; [secureServer] =&gt; 1 [botNumber] =&gt; 0 ) Array ( [0] =&gt; Array ( [name] =&gt; Drop Dead [score] =&gt; 1 [time] =&gt; 00:09:37 ) [1] =&gt; Array ( [name] =&gt; MAK-7--KA [score] =&gt; 0 [time] =&gt; 00:46:15 ) [2] =&gt; Array ( [name] =&gt; ~.:SerPent is wicked Joker:.~ [score] =&gt; 3 [time] =&gt; 00:04:17 ) [3] =&gt; Array ( [name] =&gt; -=Valerik_[UA]=- [score] =&gt; 3 [time] =&gt; 01:07:50 ) [4] =&gt; Array ( [name] =&gt; [Unregistered]QQTYU [score] =&gt; 1 [time] =&gt; 00:04:22 ) [5] =&gt; Array ( [name] =&gt; .::tartarus::. [score] =&gt; 0 [time] =&gt; 00:19:50 ) [6] =&gt; Array ( [name] =&gt; the Fray [score] =&gt; 0 [time] =&gt; 00:09:31 ) [7] =&gt; Array ( [name] =&gt; emerson [score] =&gt; 0 [time] =&gt; 00:04:24 ) [8] =&gt; Array ( [name] =&gt; COKOLKA [score] =&gt; 1 [time] =&gt; 00:22:47 ) [9] =&gt; Array ( [name] =&gt; noobik* [score] =&gt; 5 [time] =&gt; 00:05:57 ) [10] =&gt; Array ( [name] =&gt; GsyBe [score] =&gt; 0 [time] =&gt; 00:04:06 ) [11] =&gt; Array ( [name] =&gt; T.H.T [score] =&gt; 2 [time] =&gt; 01:09:50 ) [12] =&gt; Array ( [name] =&gt; GrayCardinal [score] =&gt; 1 [time] =&gt; 00:44:58 ) [13] =&gt; Array ( [name] =&gt; Storm [score] =&gt; 8 [time] =&gt; 01:21:30 ) [14] =&gt; Array ( [name] =&gt; balbs [score] =&gt; 6 [time] =&gt; 00:18:28 ) [15] =&gt; Array ( [name] =&gt; DnBproducer [score] =&gt; 0 [time] =&gt; 00:03:37 ) [16] =&gt; Array ( [name] =&gt; Shelist. [score] =&gt; 3 [time] =&gt; 00:16:08 ) [17] =&gt; Array ( [name] =&gt; [Black Legion]~*wtf?*s3'zErO*~ [score] =&gt; 4 [time] =&gt; 00:25:05 ) [18] =&gt; Array ( [name] =&gt; Lee^ [score] =&gt; 3 [time] =&gt; 01:50:51 ) [19] =&gt; Array ( [name] =&gt; KucLb1u [score] =&gt; 1 [time] =&gt; 00:18:27 ) [20] =&gt; Array ( [name] =&gt; Pa36ouHIK [score] =&gt; 0 [time] =&gt; 00:09:26 ) [21] =&gt; Array ( [name] =&gt; ( ( ( FUNNY ) ) ) - Tra ta ta [score] =&gt; 1 [time] =&gt; 00:02:36 ) [22] =&gt; Array ( [name] =&gt; jeff. [score] =&gt; 9 [time] =&gt; 00:41:39 ) [23] =&gt; Array ( [name] =&gt; GAMER [score] =&gt; 3 [time] =&gt; 00:06:33 ) ) Array ( [_tutor_bomb_viewable_check_interval] =&gt; 0.5 [_tutor_debug_level] =&gt; 0 [_tutor_examine_time] =&gt; 0.5 [_tutor_hint_interval_time] =&gt; 10.0 [_tutor_look_angle] =&gt; 10 [_tutor_look_distance] =&gt; 200 [_tutor_message_character_display_time_coefficient] =&gt; 0.07 [_tutor_message_minimum_display_time] =&gt; 1 [_tutor_message_repeats] =&gt; 5 [_tutor_view_distance] =&gt; 1000 [aesp_version] =&gt; 1.5b_mini [aimbot_detection] =&gt; 1.4beta [allow_spectators] =&gt; 1 [amx_client_languages] =&gt; 0 [amx_language] =&gt; ru [amx_nextmap] =&gt; de_nuke [amx_ptb_version] =&gt; 1.8b3 [amx_timeleft] =&gt; 15:22 [amxbans_version] =&gt; 5.1rc [amxmodx_version] =&gt; 1.8.1.3746 [antimat_version] =&gt; 2.1 [atac_version] =&gt; 3.0.1 [bhpk_version] =&gt; 2.6 [coop] =&gt; 0 [deathmatch] =&gt; 1 [decalfrequency] =&gt; 60 [dp_version] =&gt; 0.4.8 [edgefriction] =&gt; 2 [hlg_cfgversion] =&gt; HLG 1.80.03 (Lan) [hlg_checkversion] =&gt; 1.80.05 [hlg_sbsrv_version] =&gt; 1.2 [hlg_setting] =&gt; 01111011 [hlg_version] =&gt; 1.8 [hostage_debug] =&gt; 0 [hostage_stop] =&gt; 0 [humans_join_team] =&gt; any [kf_version] =&gt; 1.5 [map_spawns] =&gt; T(20) CT(20) [max_queries_sec] =&gt; 1 [max_queries_sec_global] =&gt; 1 [max_queries_window] =&gt; 1 [metamod_version] =&gt; 1.19p32 [mp_allowmonsters] =&gt; 0 [mp_autokick] =&gt; 0 [mp_autoteambalance] =&gt; 1 [mp_buytime] =&gt; 0.35 [mp_c4timer] =&gt; 35 [mp_chattime] =&gt; 10 [mp_consistency] =&gt; 0 [mp_fadetoblack] =&gt; 0 [mp_flashlight] =&gt; 1 [mp_footsteps] =&gt; 1 [mp_forcecamera] =&gt; 2 [mp_forcechasecam] =&gt; 1 [mp_fragsleft] =&gt; 0 [mp_freezetime] =&gt; 3 [mp_friendlyfire] =&gt; 1 [mp_ghostfrequency] =&gt; 0.1 [mp_hostagepenalty] =&gt; 2 [mp_kickpercent] =&gt; 100 [mp_limitteams] =&gt; 1 [mp_logdetail] =&gt; 3 [mp_logfile] =&gt; 1 [mp_logmessages] =&gt; 1 [mp_mapvoteratio] =&gt; 0.66 [mp_maxrounds] =&gt; 0 [mp_mirrordamage] =&gt; 0 [mp_playerid] =&gt; 0 [mp_roundtime] =&gt; 2.2 [mp_startmoney] =&gt; 800 [mp_timeleft] =&gt; 0 [mp_timelimit] =&gt; 20 [mp_tkpunish] =&gt; 0 [mp_windifference] =&gt; 1 [mp_winlimit] =&gt; 0 [pausable] =&gt; 0 [pbk_version] =&gt; 1.5 [prometheus] =&gt; 0.12 [reportabuse_version] =&gt; 1.0 [rhlg_version] =&gt; 2.8 [sanksounds_version] =&gt; 1.6.6b [sv_accelerate] =&gt; 5 [sv_aim] =&gt; 0 [sv_airaccelerate] =&gt; 10 [sv_airmove] =&gt; 1 [sv_allowupload] =&gt; 0 [sv_alltalk] =&gt; 1 [sv_bounce] =&gt; 1 [sv_cheats] =&gt; 0 [sv_clienttrace] =&gt; 1 [sv_clipmode] =&gt; 0 [sv_contact] =&gt; www.alfa-strike.net [sv_friction] =&gt; 4 [sv_gravity] =&gt; 800 [sv_logblocks] =&gt; 0 [sv_maxrate] =&gt; 25000 [sv_maxspeed] =&gt; 900 [sv_minrate] =&gt; 0 [sv_password] =&gt; 0 [sv_proxies] =&gt; 0 [sv_region] =&gt; 3 [sv_restart] =&gt; 0 [sv_restartround] =&gt; 0 [sv_stepsize] =&gt; 18 [sv_stopspeed] =&gt; 75 [sv_uploadmax] =&gt; 0.5 [sv_voiceenable] =&gt; 0 [sv_wateraccelerate] =&gt; 10 [sv_waterfriction] =&gt; 1 [wallblocker_enable] =&gt; 1 ) 91.198.83.42:27015 Array ( [serverName] =&gt; ITK CS SERVER [mapName] =&gt; de_russka [gameDir] =&gt; cstrike [gameDesc] =&gt; [Public 24/7] [playerNumber] =&gt; 23 [maxPlayers] =&gt; 32 [version] =&gt; 47 [operatingSystem] =&gt; Windows [passwordProtected] =&gt; [secureServer] =&gt; [botNumber] =&gt; 0 ) Array ( [0] =&gt; Array ( [name] =&gt; conflicT [score] =&gt; 26 [time] =&gt; 00:26:20 ) [1] =&gt; Array ( [name] =&gt; -=_SpoRteXS_=- |*Legioner* [score] =&gt; 12 [time] =&gt; 00:34:18 ) [2] =&gt; Array ( [name] =&gt; Sha1tan [score] =&gt; 1 [time] =&gt; 00:07:30 ) [3] =&gt; Array ( [name] =&gt; D.O.N.B.A.S.S [score] =&gt; 4 [time] =&gt; 00:26:36 ) [4] =&gt; Array ( [name] =&gt; KOCOu =-) [score] =&gt; 24 [time] =&gt; 00:19:21 ) [5] =&gt; Array ( [name] =&gt; 6uc-6uc_gbImucb-kaHa6ucb* [score] =&gt; 1 [time] =&gt; 00:03:30 ) [6] =&gt; Array ( [name] =&gt; FITER [score] =&gt; 1 [time] =&gt; 00:05:29 ) [7] =&gt; Array ( [name] =&gt; |sTaLiN|2010|NsK|KpAbO| [score] =&gt; 6 [time] =&gt; 01:01:34 ) [8] =&gt; Array ( [name] =&gt; INTxKORF [score] =&gt; 0 [time] =&gt; 00:01:45 ) [9] =&gt; Array ( [name] =&gt; Sn@ke_VinN [score] =&gt; 8 [time] =&gt; 01:18:04 ) [10] =&gt; Array ( [name] =&gt; ~CenturiON~ [score] =&gt; 0 [time] =&gt; 00:29:21 ) [11] =&gt; Array ( [name] =&gt; L1ber [score] =&gt; 4 [time] =&gt; 00:02:42 ) [12] =&gt; Array ( [name] =&gt; AMIGO** [score] =&gt; 1 [time] =&gt; 00:04:55 ) [13] =&gt; Array ( [name] =&gt; 0Fzero^ [score] =&gt; 4 [time] =&gt; 00:07:24 ) [14] =&gt; Array ( [name] =&gt; Dimon4ik [score] =&gt; 1 [time] =&gt; 00:03:05 ) [15] =&gt; Array ( [name] =&gt; *Antares [score] =&gt; 1 [time] =&gt; 00:59:04 ) [16] =&gt; Array ( [name] =&gt; f1rst* [score] =&gt; 8 [time] =&gt; 00:16:16 ) [17] =&gt; Array ( [name] =&gt; &lt;&lt;&lt;4IPON&gt;&gt;&gt; [score] =&gt; 10 [time] =&gt; 00:44:38 ) [18] =&gt; Array ( [name] =&gt; 7 Sky l [AK-47]*_GALARDO_* [score] =&gt; 20 [time] =&gt; 00:29:29 ) [19] =&gt; Array ( [name] =&gt; ov3r*ADI [score] =&gt; 6 [time] =&gt; 00:07:37 ) [20] =&gt; Array ( [name] =&gt; a.k.o.|-.-| [score] =&gt; 0 [time] =&gt; 00:00:58 ) ) Array ( [_tutor_bomb_viewable_check_interval] =&gt; 0.5 [_tutor_debug_level] =&gt; 0 [_tutor_examine_time] =&gt; 0.5 [_tutor_hint_interval_time] =&gt; 10.0 [_tutor_look_angle] =&gt; 10 [_tutor_look_distance] =&gt; 200 [_tutor_message_character_display_time_coefficient] =&gt; 0.07 [_tutor_message_minimum_display_time] =&gt; 1 [_tutor_message_repeats] =&gt; 5 [_tutor_view_distance] =&gt; 1000 [allow_spectators] =&gt; 1 [amx_client_languages] =&gt; 0 [amx_contactinfo] =&gt; [amx_language] =&gt; en [amx_nextmap] =&gt; de_russka [amx_timeleft] =&gt; 05:32 [amxmodx_version] =&gt; 1.8.1.3746 [coop] =&gt; 0 [deathmatch] =&gt; 1 [decalfrequency] =&gt; 60 [dp_version] =&gt; 0.4.8 [edgefriction] =&gt; 2 [hostage_debug] =&gt; 0 [hostage_stop] =&gt; 0 [humans_join_team] =&gt; any [max_queries_sec] =&gt; 1 [max_queries_sec_global] =&gt; 1 [max_queries_window] =&gt; 1 [metamod_version] =&gt; 1.19 [mp_allowmonsters] =&gt; 0 [mp_autokick] =&gt; 0 [mp_autoteambalance] =&gt; 1 [mp_buytime] =&gt; 0.25 [mp_c4timer] =&gt; 35 [mp_chattime] =&gt; 10 [mp_consistency] =&gt; 1 [mp_fadetoblack] =&gt; 0 [mp_flashlight] =&gt; 1 [mp_footsteps] =&gt; 1 [mp_forcecamera] =&gt; 0 [mp_forcechasecam] =&gt; 0 [mp_fragsleft] =&gt; 0 [mp_freezetime] =&gt; 3 [mp_friendlyfire] =&gt; 1 [mp_ghostfrequency] =&gt; 0.1 [mp_hostagepenalty] =&gt; 0 [mp_kickpercent] =&gt; 0.66 [mp_limitteams] =&gt; 2 [mp_logdetail] =&gt; 3 [mp_logfile] =&gt; 1 [mp_logmessages] =&gt; 1 [mp_mapvoteratio] =&gt; 0.66 [mp_maxrounds] =&gt; 0 [mp_mirrordamage] =&gt; 0 [mp_playerid] =&gt; 1 [mp_roundtime] =&gt; 1.75 [mp_startmoney] =&gt; 800 [mp_timeleft] =&gt; 0 [mp_timelimit] =&gt; 35 [mp_tkpunish] =&gt; 0 [mp_windifference] =&gt; 1 [mp_winlimit] =&gt; 0 [pausable] =&gt; 0 [sv_accelerate] =&gt; 5 [sv_aim] =&gt; 0 [sv_airaccelerate] =&gt; 10 [sv_airmove] =&gt; 1 [sv_allowupload] =&gt; 1 [sv_alltalk] =&gt; 0 [sv_bounce] =&gt; 1 [sv_cheats] =&gt; 0 [sv_clienttrace] =&gt; 1 [sv_clipmode] =&gt; 0 [sv_contact] =&gt; [sv_friction] =&gt; 4 [sv_gravity] =&gt; 800 [sv_logblocks] =&gt; 0 [sv_maxrate] =&gt; 25000 [sv_maxspeed] =&gt; 900 [sv_minrate] =&gt; 25000 [sv_password] =&gt; 0 [sv_proxies] =&gt; 1 [sv_region] =&gt; 255 [sv_restart] =&gt; 0 [sv_restartround] =&gt; 0 [sv_stepsize] =&gt; 18 [sv_stopspeed] =&gt; 75 [sv_uploadmax] =&gt; 0.5 [sv_voiceenable] =&gt; 1 [sv_wateraccelerate] =&gt; 10 [sv_waterfriction] =&gt; 1 )
    Post #: 27
    RE: [PHP] Мониторинг игровых серверов - 2010-06-04 16:11:11.173333   
    john smith2

    Сообщений: 6
    Оценки: 0
    Присоединился: 2010-05-08 23:28:48.293333
    oRb
    Кинул на хостинг твою библиотеку - результат тот же - инфу о сервере выдает (вышеприведенные IP), о игроках нет. Ну не в интернете же дело. Юзаю класс ServerInfo, в этот же файл инклудом подключаю все файлы, которые в архиве прикреплены. [&:] Не понимаю чего не "вываливает" серв про игроков данные, еще больше не понимаю почему у тебя оно работает))
    Ладно бы там я както криво пхп с апачем поставил, еще может быть, но не на хостинге ведь.
    Я не хочу тупо копировать твой класс, делаю свое. В твой код решил посмотреть когда у меня не захотело работать. Но и с твоим те же траблы вот получились.
    Post #: 28
    RE: [PHP] Мониторинг игровых серверов - 2010-08-10 04:36:20.343333   
    djalexx

    Сообщений: 23
    Оценки: 0
    Присоединился: 2010-08-09 14:32:09.106666
    реализовывал подобное в Dbscript 4 - http://cs9958.vkontakte.ru/u15551257/92678536/x_6da18191.jpg
    отсюда можно скачать - dj.chg.su/dbscript

    PS. вообще в проекте помощи ищу.
    Post #: 29
    RE: [PHP] Мониторинг игровых серверов - 2012-05-02 21:06:41.490000   
    popen021

    Сообщений: 7
    Оценки: 0
    Присоединился: 2011-11-03 23:53:55.110000
    а как вообще сделать вывод, пустые страницы вообще, не подскажите?
    Post #: 30
    RE: [PHP] Мониторинг игровых серверов - 2012-05-03 03:00:51.956666   
    jdam

    Сообщений: 199
    Оценки: -20
    Присоединился: 2012-03-11 01:34:16.840000
    скорее всего никак
    Post #: 31
    Страниц:  [1]
    Все форумы >> [Веб-программинг] >> [PHP] Мониторинг игровых серверов







    Связаться:
    Вопросы по сайту / xakep@glc.ru

    Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.