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

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

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

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

6 страниц V   1 2 3 ... 4 5 »

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

, доделать готовое решение
Статус пользователя Apatia
сообщение 10.9.2014, 15:49
Сообщение #21


Стаж: 16 лет
Город: Москва

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

Цитата(miRror @ 10.9.2014, 15:21) *
Руки значит не оттуда растут, я не рабочее скидывать бы не стал, тем более для тебя писал специально.


Ну я думаю сохранить, залить на хост много рук не нужно)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя miRror
сообщение 10.9.2014, 16:15
Сообщение #22


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Тут недостаточно только лишь того, чтобы просто загрузить, сам ты я думаю не справишься.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 10.9.2014, 16:36
Сообщение #23
Стаж: 14 лет

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

Apatia,
Ну у вас и на главной странице, тоже показывает ту ошибку... Это ошибка на хостинге....
Я скрипт проверил у себя на Web сервере, и всё отлично работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Apatia
сообщение 10.9.2014, 18:38
Сообщение #24


Стаж: 16 лет
Город: Москва

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

Ребят, мой косяк, прошу прощения).
А как сделать чтобы скрипт работал с несколькими серверами
Такого типа: <script type="text/javascript" src="http://update-club.ru/php/server.php?ip=123.45.67.89&port=12345"></script>

P.S.:
<script type="text/javascript">document.write(info.map);</script>
Вывод не название карты а cstrike пишет)

Отредактировал: Apatia, - 10.9.2014, 18:43
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 10.9.2014, 19:27
Сообщение #25
Стаж: 14 лет

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

Apatia,
странно. у меня выводило название карты) покрути там сам код,

покрути эту часть:

Код
$server_mapname = $tmp[2];


поставь там
$tmp[1], $tmp[3] и т.д. посмотри что будет выдавать... пока не будет названия карты))

чтоб вывести несколько серверов, прописывай в таком виде:
Скрытый текст
Код
<script type="text/javascript" src="../server.php?ip=...&port=..."></script>
<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/>
.....
<script type="text/javascript" src="../server.php?ip=...&port=..."></script>
<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/>
.....
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Apatia
сообщение 10.9.2014, 20:03
Сообщение #26


Стаж: 16 лет
Город: Москва

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

Спасибо большое за помощь.
Колдовал как мог, на некоторых серверах выводит название карты а на некоторых выводит cstrike (причем сервера одни 1.6)
В чем может быть причина?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 10.9.2014, 20:30
Сообщение #27
Стаж: 14 лет

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

Apatia,
дайте под спойлером, 1 сервер который показывают cstrike
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Apatia
сообщение 10.9.2014, 20:34
Сообщение #28


Стаж: 16 лет
Город: Москва

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

Еще нашел баг, на некоторых вместо мап. показывает название сервера.
Вообщем проблема такая: есть список серверов, допустим из 10 штук, на некоторых показывает все верно, на некоторых показывает место памы cstrike, на некоторых показывает название сервера место мапы.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 10.9.2014, 20:40
Сообщение #29
Стаж: 14 лет

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

Apatia,
дайте свой JS код который вы используете. (Если через PHP, нажмите на странице правой клавишей, и нажмите "Показать исходный текст" или чтото такое... И скиньте сюда HTML код)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Apatia
сообщение 10.9.2014, 20:58
Сообщение #30


Стаж: 16 лет
Город: Москва

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

Для вывода информации использую как было написано:

Код
<script type="text/javascript" src="../server.php?ip=...&port=..."></script>
<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/>
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 10.9.2014, 21:21
Сообщение #31
Стаж: 14 лет

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

Apatia,
Тестируйте
Код:
<?php
$fp = @fsockopen("udp://$_GET[ip]", $_GET["port"], $errno, $errstr);

$server_name = "unknown";
$server_online = "<font style=\"color: red;\">Выкл.</font>";
$server_player = "??";
$server_maxplayer = "??";
$server_mapname = "unknown";
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]);

if($version == 109)
{
$server_name = $tmp[1];
$server_mapname = $tmp[2];
}
else
{
$server_name = substr($tmp[0], 6);
$server_mapname = $tmp[1];
}
}
}

echo "var info = {";
echo "'ip_port':'$_GET[ip]:$_GET[port]', 'hostname':'$server_name', 'map':'$server_mapname', 'players':'$server_player', 'maxplayers':'$server_maxplayer', 'status':'$server_online'";
echo "};";
?>
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Apatia
сообщение 11.9.2014, 5:52
Сообщение #32


Стаж: 16 лет
Город: Москва

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

Супер, все работает отлично. Огромное спасибо.
А возможно реализовать в этом скрипте картинку карт еще?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Apatia
сообщение 11.9.2014, 6:34
Сообщение #33


Стаж: 16 лет
Город: Москва

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

P.S.: А еще вывод списка играющих реально прикрутить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя onotole
сообщение 11.9.2014, 7:23
Сообщение #34


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

Ладно, мне ваши укозы и кодинг в стиле 80-х не понять. Но, в самое начало скрипта, сразу после <?php добавьте header('Content-Type: text/javascript');
Порадуйте браузер
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Apatia
сообщение 11.9.2014, 13:08
Сообщение #35


Стаж: 16 лет
Город: Москва

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

Цитата(onotole @ 11.9.2014, 7:23) *
Ладно, мне ваши укозы и кодинг в стиле 80-х не понять. Но, в самое начало скрипта, сразу после <?php добавьте header('Content-Type: text/javascript');
Порадуйте браузер


Это для чего?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя onotole
сообщение 11.9.2014, 14:06
Сообщение #36


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

Цитата(Apatia @ 11.9.2014, 14:08) *
Это для чего?

Для того. чтобы браузер знал, что ему подсовывают в виде жабаскрипта
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Apatia
сообщение 11.9.2014, 14:47
Сообщение #37


Стаж: 16 лет
Город: Москва

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

Пасиб, сделал.

А как насчет картинки карты и списка игроков? Возможно к этому скрипту такое прикрутить? Чтобы также вызывался (info.playerlist), (info.map_img) ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 11.9.2014, 15:34
Сообщение #38
Стаж: 14 лет

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

Apatia,
Конечно, с php можно сделать всё. Нужно только уметь)

p.s. - Не забывайте про кнопку в каждом из сообщений, в котором помогли Вам.

Добавил изображение карты
Код:
<?php
$fp = @fsockopen("udp://$_GET[ip]", $_GET["port"], $errno, $errstr);

$server_name = "unknown";
$server_online = "<font style=\"color: red;\">Выкл.</font>";
$server_player = "??";
$server_maxplayer = "??";
$server_mapname = "unknown";
$mapimg = "server_offline.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_images.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("../images/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=\"../images/maps/$mapimg\" alt=\"\"/>', 'players':'$server_player', 'maxplayers':'$server_maxplayer', 'status':'$server_online'";
echo "};";
?>


server_offline.png - изображение, если сервер выключен.
nomap_images.png - изображение, если карта которая на сервере и для неё нет изображения.
Каталог расположения карт на сервере, в корне сервера в папке /images/maps/*.jpg где * - имя карты.
Все настройки можно поменять под себя...

Чтоб вывести изображение карты, пропишите: <script type="text/javascript">document.write(info.mapimg);</script>
А насчет списка игроков, как вы себе представляете выводить?

onotole,
я тоже говорил что подобный скрипт не самый лучший... Но Мы не в праве указывать автору что ему делать. Возможно этот код ему нужен для мониторинга.
На мой взгляд, очень даже хороший вариант (я себе тоже как-то сделаю подобную возможность для мониторинга)

Отредактировал: Orty_Hart, - 11.9.2014, 16:59
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Apatia
сообщение 11.9.2014, 19:04
Сообщение #39


Стаж: 16 лет
Город: Москва

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

Orty_Hart, Огромное тебе спасибо! У меня почему-то нету кнопки "спасибо".

Цитата
А насчет списка игроков, как вы себе представляете выводить?


Обычной таблицей (ник, скоко убил, скоко умер), или хотя-бы просто список игроков онлайн.

Еще раз спасибо большое тебе. Очень помог.

P.S.: Залил пару карт, проверил, показывает почему-то ноу-имг, но картинка есть.
Ппц я криворукий.

Отредактировал: Apatia, - 11.9.2014, 19:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя miRror
сообщение 11.9.2014, 19:36
Сообщение #40


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Потому что file_exists не так работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
6 страниц V   1 2 3 ... 4 5 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: