Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

6 страниц V  « 4 5 6

Довести скрипт мониторинга до ума

, доделать готовое решение
Статус пользователя Orty_Hart
сообщение 1.3.2015, 12:16
Сообщение #81
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Ermak,
вы не подключите так....
файл, на который вы ссылаетесь, не имеет формата страницы JS и выводит содержание в HTML виде.


Нужно добавить
Код
header("Content-Type: text/javascript; charset=utf-8");


и выводить информацию так:


Код
echo "
var info = {
'hostname': '". $server_name ."'
};
";
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ermak
сообщение 1.3.2015, 12:29
Сообщение #82


Стаж: 11 лет

Сообщений: 37
Благодарностей: 1
Полезность: < 0

А как дальше выводить?
так
Код
<tr>
        <td>'.$server_name.'</td>
        <td>'.$server_mapname.'</td>
        <td>'.$server_player.'</td>
        <td>'.$server_maxplayer.'</td>
        <td>'.$server_online.'</td>
    </tr>

или так
Код
<script type="text/javascript" src="http://cs-karelia.ru/monitor.php?ip=217.77.51.229&port=27015"></script>
<script type="text/javascript">document.write(info.mapimg);</script><br/>
<strong>Название:</strong> <script type="text/javascript">document.write(info.hostname);</script><br/>
<strong>IP адрес:</strong> <script type="text/javascript">document.write(info.ip_port);</script><br/>
<strong>Игроки:</strong> <script type="text/javascript">document.write(info.players + "/" + info.maxplayers);</script><br/>
<strong>Карта:</strong> <script type="text/javascript">document.write(info.map);</script><br/>
<strong>Статус:</strong> <script type="text/javascript">document.write(info.status);</script>


Я пробовал как вы писали выше выводить через JS но у меня не выводит, я не понимаю почему. Пользователи Вашего форума пишут что у них выводит а у меня нет, бред какой то
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 1.3.2015, 12:40
Сообщение #83
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Ermak,
вы пробовали открыть сам файл на сервере?
И на хостинге открыты порты для fsockopen()?
у меня была проблема, что хостинг закрывал все порты через фаервол, и я писал в тех.поддержку чтоб они открыли их, после чего я мог соединятся с серверами. Просто создайте файл, и залейте его на хостинг. Потом откройте сам файл (без JS) и посмотрите что отображено на странице.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ermak
сообщение 1.3.2015, 12:43
Сообщение #84


Стаж: 11 лет

Сообщений: 37
Благодарностей: 1
Полезность: < 0

Открыл, вот что показывает
Код
var info = {'ip_port':':', 'hostname':'unknown', 'map':'unknown', 'mapimg':'<img src="../img/maps/offline.gif" alt=""/ width="50px" height="50px">', 'players':'??', 'maxplayers':'??', 'status':'<font style="color: red;">Выкл.</font>'};


На счет портов сейчас узнаю у них
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ermak
сообщение 1.3.2015, 15:10
Сообщение #85


Стаж: 11 лет

Сообщений: 37
Благодарностей: 1
Полезность: < 0

Я написал в тех. поддержку хоста на счет открыть порты для fsockopen(), но я вчера одевал код для определения своего пинга на сервере, все работает нормально, там тоже используется fsockopen(), значит получаются что порты открыты.
вот код
Код
<?php
// class check
$dns = "mail.karelgaz.ru"; //here you can change your dns server name
$qport = "27015"; // the port of your server
class verifica {
var $ip;
var $port;
//starting UDPing function
function udp($ip, $port) {
if (fsockopen( "udp://$ip", $port, $errno, $errstr, 1)) { $status = '<font color="green">Online</font>'; }
else { $status = '<font color="red">Offline</font>'; }
return $status;
}
// starting get source (ping) server
function ping($ip, $port) {
$starttime = microtime(true);
if ( fsockopen( "udp://$ip", $port, $errno, $errstr, 1 ) ) { $status = 1; } else { $status = 0; }
$stoptime = microtime(true);
$ping = ($stoptime - $starttime) * 1000;
$ping = number_format($ping, 3);
return $ping;
}
}
//showing status
$hl1 = new verifica();
echo 'Server '.$dns.' is '.$hl1->udp($dns, $qport).'<br />';
echo 'Ping: <font color="green">'.$hl1->ping($dns, $qport).'</font> ms';
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 1.3.2015, 15:51
Сообщение #86
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Ermak,
Код
'ip_port':':'

у вас не указан ip и порт сервера
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ermak
сообщение 1.3.2015, 15:55
Сообщение #87


Стаж: 11 лет

Сообщений: 37
Благодарностей: 1
Полезность: < 0

В том то и дело что указал, почему не работает не понятно. У меня хост jino

Вот код файла
Код
<?php
   $fp = @fsockopen("udp://217.77.51.229", 27015, $errno, $errstr);
    
   $server_name = "unknown";
   $server_online = "<font style=\"color: red;\">Выкл.</font>";
   $server_player = "??";
   $server_maxplayer = "??";
   $server_mapname = "unknown";
   $mapimg = "offline.gif";
    
   if($fp)
   {
      stream_set_timeout($fp, 2);
      
      fwrite($fp, "\xFF\xFF\xFF\xFFTSource Engine Query\x00");
      $buffer = fread($fp, 8096);
      fclose($fp);
      
      if($buffer)
      {
         $tmp = explode("\x00", $buffer);
         $place = strlen($tmp[0].$tmp[1].$tmp[2].$tmp[3].$tmp[4]) + 5;
         $version = ord($buffer[4]);
         $server_online = "<font style=\"color: green;\">Вкл.</font>";
         $server_player = ord($buffer[$place]);
         $server_maxplayer = ord($buffer[$place + 1]);
         $mapimg = "online.gif";
          
         if($version == 109)
         {
            $server_name = $tmp[1];
            $server_mapname = $tmp[2];
         }
         else
         {
            $server_name = substr($tmp[0], 6);
            $server_mapname = $tmp[1];
         }
          
         if(file_exists("../img/maps/". $server_mapname .".jpg" )) {$mapimg = $server_mapname;}
      }
   }
    
   header("Content-Type: text/javascript");
    
   echo "var info = {";
   echo "'ip_port':'$_GET[ip]:$_GET[port]', 'hostname':'$server_name', 'map':'$server_mapname', 'mapimg':'<img src=\"../img/maps/$mapimg\" alt=\"\"/ width=\"50px\" height=\"50px\">', 'players':'$server_player', 'maxplayers':'$server_maxplayer', 'status':'$server_online'";
   echo "};";
?>
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 1.3.2015, 16:06
Сообщение #88
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Ermak,
таким-же скриптом, соединяюсь с вашим сервером отлично.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ermak
сообщение 1.3.2015, 16:11
Сообщение #89


Стаж: 11 лет

Сообщений: 37
Благодарностей: 1
Полезность: < 0

подскажите как вы делаете, я вчера весь день убил не чего не получается.
Вот так я соединяюсь
Код
<script type="text/javascript" src="http://cs-karelia.ru/monitor.php?ip=217.77.51.229&port=27015"></script>
<script type="text/javascript">document.write(info.mapimg);</script><br/>
<strong>Название:</strong> <script type="text/javascript">document.write(info.hostname);</script><br/>
<strong>IP адрес:</strong> <script type="text/javascript">document.write(info.ip_port);</script><br/>
<strong>Игроки:</strong> <script type="text/javascript">document.write(info.players + "/" + info.maxplayers);</script><br/>
<strong>Карта:</strong> <script type="text/javascript">document.write(info.map);</script><br/>
<strong>Статус:</strong> <script type="text/javascript">document.write(info.status);</script>

У меня не выводит данные.

Вот я через ссылку сделал http://cs-karelia.ru/monitor.php?ip=217.77...&port=27015 и выводит
Код
var info = {'ip_port':'217.77.51.229:27015', 'hostname':'unknown', 'map':'unknown', 'mapimg':'<img src="../img/maps/offline.gif" alt=""/ width="50px" height="50px">', 'players':'??', 'maxplayers':'??', 'status':'<font style="color: red;">Выкл.</font>'};
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 1.3.2015, 16:24
Сообщение #90
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Ermak,
Я скопировал ваш код, и установил у себя. И всё работает...

Код
var info = {'ip_port':'***:**', 'hostname':'VIP-KARELIA|CS-K*RELI*A.RU', 'map':'de_jeepathon2k', 'mapimg':'<img src="../img/maps/online.gif" alt=""/ width="50px" height="50px">', 'players':'1', 'maxplayers':'32', 'status':'<font style="color: green;">Вкл.</font>'};


Отредактировал: Orty_Hart, - 1.3.2015, 16:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ermak
сообщение 1.3.2015, 16:31
Сообщение #91


Стаж: 11 лет

Сообщений: 37
Благодарностей: 1
Полезность: < 0

Блин а почему у меня не работает, я уже на двух пк пробовал

Как вы запускает его напиши пожалуйста, странно что у вас работает а у меня

Orty_Hart, можете выйти в скайп я вам покажу свой экран
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ermak
сообщение 1.3.2015, 20:30
Сообщение #92


Стаж: 11 лет

Сообщений: 37
Благодарностей: 1
Полезность: < 0

У меня все работает, в тех. поддержку написал они активировали.
Я тут код поставил
Код
<?php
    list($ip, $port) = explode(":", $_GET["server"]);
    $fp = @fsockopen("udp://".$ip, $port, $errno, $errstr);
    
    $server_name = "unknown";
    $server_online = "<font style=\"color: red;\">Выкл.</font>";
    $server_player = "??";
    $server_maxplayer = "??";
    $server_mapname = "unknown";
    $mapimg = "nomap.png";
    
    if($fp)
    {
        stream_set_timeout($fp, 2);
        
        fwrite($fp, "\xFF\xFF\xFF\xFFTSource Engine Query\x00");
        $buffer = fread($fp, 8096);
        fclose($fp);
        
        if($buffer)
        {
            $tmp = explode("\x00", $buffer);
            $place = strlen($tmp[0].$tmp[1].$tmp[2].$tmp[3].$tmp[4]) + 5;
            $version = ord($buffer[4]);
            $server_online = "<font style=\"color: green;\">Вкл.</font>";
            $server_player = ord($buffer[$place]);
            $server_maxplayer = ord($buffer[$place + 1]);
            $mapimg = "nomap.png";
            
            if($version == 109)
            {
                $server_name = $tmp[1];
                $server_mapname = $tmp[2];
            }
            else
            {
                $server_name = substr($tmp[0], 6);
                $server_mapname = $tmp[1];
            }
            
            if(file_exists("maps/". $server_mapname .".jpg")) {$mapimg = "$server_mapname.jpg";}
        }
    }
    
    function playersInfo()
    {
        $player = array();
        global $ip, $port;
        $fp = @fsockopen("udp://".$ip, $port);
        
        if($fp)
        {
            stream_set_timeout($fp, 2);
            
            fwrite($fp, "\xFF\xFF\xFF\xFF\x55\xFF\xFF\xFF\xFF");
            $buffer = fread($fp, 4096);
            
            if(trim($buffer))
            {
                fwrite($fp, "\xFF\xFF\xFF\xFF\x55".substr($buffer, 5, 4));
                $buffer = fread($fp, 4096);
                
                if($buffer)
                {
                    $player_number = 0;
                    $position = 2;
                    do
                    {
                        $player_number++;
                        $player[$player_number]['name']= "";
                        $player[$player_number]['id'] = ord($buffer[$position]);
                        $position++;
                        
                        while($buffer[$position] != "\x00" && $position < 400000)
                        {
                            $player[$player_number]['name'] .= $buffer[$position];  
                            $position++;
                        }
                        
                        $player[$player_number]['score'] = (ord($buffer[$position + 1]))
                        + (ord($buffer[$position + 2]) * 256)
                        + (ord($buffer[$position + 3]) * 65536)
                        + (ord($buffer[$position + 4]) * 16777216);
                        
                        if($player[$player_number]['score'] > 2147483648) $player[$player_number]['score'] -= 4294967296;
                        if($player[$player_number]['score'] > 100) $player[$player_number]['score'] = 0;
                        $time = substr($buffer, $position + 5, 4);              
                        if(strlen($time) < 4)
                            return FALSE;              
                        list(,$time) = unpack("f", $time);                
                        $time = mktime(0, 0, $time);                          
                        $player[$player_number]['time'] = date("H:i:s", $time);  
                        $position += 9;
                    }
                    while($position < strlen($buffer));                  
                    return $player;
                }
            }
        }
    }
    
    header("Content-Type: text/javascript");
    $pl_score = "''";
    $pl_time = "''";
    $players_info = playersInfo();
    $i = 0;
    echo "var pl_name = new Array(''";
    foreach($players_info as $player)
    {
        if($player["name"])
        {
            $player["name"] = str_replace("\n", "", $player["name"]);
            $player["name"] = str_replace("\r", "", $player["name"]);
            
            $i++;
            
            $pl_score .= ", '$player[score]'";
            $pl_time .= ", '$player[time]'";
            
            echo ", '". htmlspecialchars($player["name"], ENT_QUOTES) ."'";
        }
    }
    echo ");\n";
    echo "var pl_score = new Array($pl_score);\n";
    echo "var pl_time = new Array($pl_time);\n";
    echo "var players = $i;\n";
    echo "var info = {";
    echo "'ip_port':'$ip:$port', 'hostname':'$server_name', 'map':'$server_mapname', 'mapimg':'<img src=\"../images/maps/$mapimg\" alt=\"\"/>', 'players':'$server_player', 'maxplayers':'$server_maxplayer', 'status':'$server_online'";
    echo "};";


почему он не работает с мои JS
Код
<script type="text/javascript" src="http://cs-karelia.ru/monitor.php?ip=217.77.51.229&port=27015"></script>
<script type="text/javascript">document.write(info.mapimg);</script><br/>
<strong>Название:</strong> <script type="text/javascript">document.write(info.hostname);</script><br/>
<strong>IP адрес:</strong> <script type="text/javascript">document.write(info.ip_port);</script><br/>
<strong>Игроки:</strong> <script type="text/javascript">document.write(info.players + "/" + info.maxplayers);</script><br/>
<strong>Карта:</strong> <script type="text/javascript">document.write(info.map);</script><br/>
<strong>Статус:</strong> <script type="text/javascript">document.write(info.status);</script>
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ermak
сообщение 1.3.2015, 20:42
Сообщение #93


Стаж: 11 лет

Сообщений: 37
Благодарностей: 1
Полезность: < 0

Разобрался, как сделать, только теперь не понятно почему не выводит картинки карт а только выводит nomap.png
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ermak
сообщение 1.3.2015, 20:48
Сообщение #94


Стаж: 11 лет

Сообщений: 37
Благодарностей: 1
Полезность: < 0

Можете еще показать на пример как можно вывести например так
Код
echo
    '<table>
    <tr>
        <td>Имя сервера</td>
        <td>Название карты</td>
        <td>Игроки</td>
        <td>Максимально</td>
        <td>Статус</td>
    </tr>
    <tr>
        <td>'.$server_name.'</td>
        <td>'.$server_mapname.'</td>
        <td>'.$server_player.'</td>
        <td>'.$server_maxplayer.'</td>
        <td>'.$server_online.'</td>
    </tr>
    </table>';
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 3.3.2015, 16:22
Сообщение #95
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Ermak,
карты должны лежать в папке maps/[карты]
добавьте поменяйте на ../maps/[карты] если адрес можно представить как коренной.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя UltraBook
сообщение 19.8.2015, 18:27
Сообщение #96
Стаж: 10 лет

Сообщений: 5
Благодарностей: 1
Полезность: 0

Цитата(Orty_Hart @ 3.3.2015, 17:17) *
Ermak,
карты должны лежать в папке maps/[карты]
добавьте поменяйте на ../maps/[карты] если адрес можно представить как коренной.



Ребят, ну не знаю CSGO сервера отображает некорректно количество текущих игроков и максимальных
Если на сервере хотя бы 1 игрок то показывает 100 из 108 игроков. Как исправить? Целый день мучаюсь, буду очень благодарен за помощь. Использую код:
Прикрепленный файл  serv.php ( 1,72 килобайт ) Кол-во скачиваний: 21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя UltraBook
сообщение 20.8.2015, 20:20
Сообщение #97
Стаж: 10 лет

Сообщений: 5
Благодарностей: 1
Полезность: 0

Цитата(UltraBook @ 19.8.2015, 19:22) *
Ребят, ну не знаю CSGO сервера отображает некорректно количество текущих игроков и максимальных
Если на сервере хотя бы 1 игрок то показывает 100 из 108 игроков. Как исправить? Целый день мучаюсь, буду очень благодарен за помощь. Использую код:
Прикрепленный файл  serv.php ( 1,72 килобайт ) Кол-во скачиваний: 21


Ребят, неужели ни у кого не было данной проблемы? Как решили подскажите пожалуйста...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 23.8.2015, 20:12
Сообщение #98
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

UltraBook,
дай адрес сервера.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя UltraBook
сообщение 23.8.2015, 21:04
Сообщение #99
Стаж: 10 лет

Сообщений: 5
Благодарностей: 1
Полезность: 0

Цитата(Orty_Hart @ 23.8.2015, 21:08) *
UltraBook,
дай адрес сервера.

IP не имеет значение, пробовал на разных CSGO серверах
46.174.52.12:27263
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 26.8.2015, 20:31
Сообщение #100
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

UltraBook, Держи [attachment=35409:test.php]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
6 страниц V  « 4 5 6
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: