+ Ответить в теме
Показано с 1 по 9 из 9
  1. #1
    Аватар для MRX MRX Не известно кто Прохожий
    Сообщений
    91
    Поблагодарили 2 раз(а) в 2 сообщениях

    Получение информации о сервере [CS 1.6]

    собственно как получить например текущую карту (или что то другое)??

    есть готовый код под оригинал php, но я хз как ее поправить и вызвать для ds..
    урл1 (линк)
    урл2 (работа с линк))
    урл3)
    Последний раз редактировалось MRX; 05.07.2018 в 00:33.

  2. #2
    Аватар для PiEy PiEy Очень опасный тип PiEy Очень опасный тип PiEy Очень опасный тип Путешественник
    Сообщений
    430
    Поблагодарили 40 раз(а) в 40 сообщениях
    Самое простое что мне приходилось делать....

    PHP код:
    <?php

    // PiEy CSSock class

    class CSSock
    {
        private 
    $connect null;
        private 
    $port 0;
        private 
    $socket null;
        
        public 
    $lasterror "";
        
        public function 
    __construct($ipv$port)
        {
            
    $this->connect "udp://${ipv}";
            
    $this->port $port;
        }
        
        public function 
    connect($timeout)
        {
            
    $sock fsockopen$this->connect$this->port$errno$errstr$timeout );
            
            if ( 
    $sock )
            {
                
    $this->socket $sock;
                return 
    $sock;
            } 
            else
            {
                
    $this->lasterror "Code: {$errno}\nMessage: {$errstr}";
                return 
    false;
            }
        }
        
        public function 
    sendCmd($cmd$readlength 1024)
        {
            if ( 
    $this->socket != null )
            {
                
    fwrite($this->socket$cmdstrlen($cmd));
                return 
    fread($this->socket$readlength);
            } else return;
        }
        
        
    /*
         * Example get server ping with cmd
         */
         
         
    public function getPing()
         {
             if ( 
    $this->connect(100) != false )
             {
                 
    $result $this->sendCmd("\xFF\xFF\xFF\xFF\x69"4);
                 
                 return 
    $result;
             }
         }
        
    }

    ?>
    Пример
    PHP код:
    $cs = new CSSock("127.0.0.1"65555);
    $connect $cs->connect(100);
    if (
    $connect != false)
         
    pre($cs->getPing()); 
    Последний раз редактировалось PiEy; 05.07.2018 в 09:19.

  3. #3
    Аватар для MRX MRX Не известно кто Прохожий
    Сообщений
    91
    Поблагодарили 2 раз(а) в 2 сообщениях
    Цитата Сообщение от PiEy Посмотреть сообщение
    Самое простое что мне приходилось делать....

    PHP код:
    <?php

    // PiEy CSSock class

    class CSSock
    {
        private 
    $connect null;
        private 
    $port 0;
        private 
    $socket null;
        
        public 
    $lasterror "";
        
        public function 
    __construct($ipv$port)
        {
            
    $this->connect "udp://${ipv}";
            
    $this->port $port;
        }
        
        public function 
    connect($timeout)
        {
            
    $sock fsockopen$this->connect$this->port$errno$errstr$timeout );
            
            if ( 
    $sock )
            {
                
    $this->socket $sock;
                return 
    $sock;
            } 
            else
            {
                
    $this->lasterror "Code: {$errno}\nMessage: {$errstr}";
                return 
    false;
            }
        }
        
        public function 
    sendCmd($cmd$readlength 1024)
        {
            if ( 
    $this->socket != null )
            {
                
    fwrite($this->socket$cmdstrlen($cmd));
                return 
    fread($this->socket$readlength);
            } else return;
        }
        
        
    /*
         * Example get server ping with cmd
         */
         
         
    public function getPing()
         {
             if ( 
    $this->connect(100) != false )
             {
                 
    $result $this->sendCmd("\xFF\xFF\xFF\xFF\x69"4);
                 
                 return 
    $result;
             }
         }
        
    }

    ?>
    Пример
    PHP код:
    $cs = new CSSock("127.0.0.1"65555);
    $connect $cs->connect(100);
    if (
    $connect != false)
         
    pre($cs->getPing()); 
    спс, но возвращает "яяяя"

  4. #4
    Аватар для PiEy PiEy Очень опасный тип PiEy Очень опасный тип PiEy Очень опасный тип Путешественник
    Сообщений
    430
    Поблагодарили 40 раз(а) в 40 сообщениях
    Ты команду измени, т.к я точно не могу посмотреть какая ко***** отправляет на запрос пинг, т.к от версии сервера много чего может зависить

  5. #5
    Аватар для MRX MRX Не известно кто Прохожий
    Сообщений
    91
    Поблагодарили 2 раз(а) в 2 сообщениях
    Цитата Сообщение от PiEy Посмотреть сообщение
    Ты команду измени, т.к я точно не могу посмотреть какая ко***** отправляет на запрос пинг, т.к от версии сервера много чего может зависить
    написал новый класс, работает на всех версиях (ну я не видел где не робит )
    теперь проблему с кодировкой, точнее iconv, как ее юзать?
    PHP код:
    iconv('windows-1251''utf-8'$result[0]); 
    ошибка так..

    класс
    PHP код:
    <?php

    class CSSOCKET
    {
        function 
    INFO($ip$port)
        {
            
    $socket = @fsockopen("udp://".$ip$port$errno$errstr1);

            
    stream_set_timeout($socket20);
            
    stream_set_blocking($socketTRUE);
            
    fwrite($socket"\xFF\xFF\xFF\xFF\x54Source Engine Query\x00");
            
            
    $response fread($socket4096);
            @
    fclose($socket);

            
    $packet explode("\x00"substr($response6), 5);
            
    $result = array();

            
    $result['name']         = $packet[0];
            
    $result['map']             = $packet[1];
            
    $result['game']         = $packet[2];
            
    $result['description']  = $packet[3];
            
            if (
    $inner $packet[4])
            {
            
                
    $result['players']         = ord(substr($inner21));
                
    $result['playersmax']     = ord(substr($inner31));
                
    $result['password']     = ord(substr($inner71));
                
    $result['vac']             = ord(substr($inner81));
            }
            
            
    var_dump($result);
        }
    }

    ?>

  6. #6
    Аватар для PiEy PiEy Очень опасный тип PiEy Очень опасный тип PiEy Очень опасный тип Путешественник
    Сообщений
    430
    Поблагодарили 40 раз(а) в 40 сообщениях
    Цитата Сообщение от MRX Посмотреть сообщение
    написал новый класс, работает на всех версиях (ну я не видел где не робит )
    теперь проблему с кодировкой, точнее iconv, как ее юзать?
    PHP код:
    iconv('windows-1251''utf-8'$result[0]); 
    ошибка так..

    класс
    PHP код:
    <?php

    class CSSOCKET
    {
        function 
    INFO($ip$port)
        {
            
    $socket = @fsockopen("udp://".$ip$port$errno$errstr1);

            
    stream_set_timeout($socket20);
            
    stream_set_blocking($socketTRUE);
            
    fwrite($socket"\xFF\xFF\xFF\xFF\x54Source Engine Query\x00");
            
            
    $response fread($socket4096);
            @
    fclose($socket);

            
    $packet explode("\x00"substr($response6), 5);
            
    $result = array();

            
    $result['name']         = $packet[0];
            
    $result['map']             = $packet[1];
            
    $result['game']         = $packet[2];
            
    $result['description']  = $packet[3];
            
            if (
    $inner $packet[4])
            {
            
                
    $result['players']         = ord(substr($inner21));
                
    $result['playersmax']     = ord(substr($inner31));
                
    $result['password']     = ord(substr($inner71));
                
    $result['vac']             = ord(substr($inner81));
            }
            
            
    var_dump($result);
        }
    }

    ?>
    если там кодировка UTF-8 with BOM, дальше сам разбирайся ;D

  7. #7
    Аватар для Феникс Феникс Очень опасный тип Странник
    Сообщений
    106
    Поблагодарили 3 раз(а) в 3 сообщениях
    это та нахрена тут var_dump($result); ? зачем выводить..

  8. #8
    Аватар для MRX MRX Не известно кто Прохожий
    Сообщений
    91
    Поблагодарили 2 раз(а) в 2 сообщениях
    Цитата Сообщение от Феникс Посмотреть сообщение
    это та нахрена тут var_dump($result); ? зачем выводить..
    не весь код мой..

  9. #9
    Аватар для Феникс Феникс Очень опасный тип Странник
    Сообщений
    106
    Поблагодарили 3 раз(а) в 3 сообщениях
    ааа ясно)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения