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

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

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

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

простенький мониторинг на сайте

, посредством php
Статус пользователя zippel
сообщение 29.11.2013, 18:03
Сообщение #1


Стаж: 17 лет

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

Здраствуйте, подскажите как замутить у себя на сайте мини-мониторинг. Например что бы хотябы показывал онлайн сервер или нет. Не плохо бы сделать как у c-s.net.ua мне очень нравится. Сам я пробовал сделать лайт, через fsocopen чет ваще не видит мой UDP порт.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
OriGinaL
сообщение 29.11.2013, 18:04
Сообщение #2
Стаж: 13 лет

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

на сайте или на форуме?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя zippel
сообщение 29.11.2013, 18:07
Сообщение #3


Стаж: 17 лет

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

Цитата(OriGinaL @ 29.11.2013, 18:04) *
на сайте или на форуме?)


На сайте.

Люди, что не понятно во фразе "посредством php"!
Мне ненадо там JS всяких мониторингов. Мне надо всего то строчек 10 в пыхе.

Отредактировал: zippel, - 29.11.2013, 19:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 29.11.2013, 19:53
Сообщение #4


Стаж: 17 лет

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

всё.. в бб?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 29.11.2013, 19:55
Сообщение #5


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

zippel, http://www.script-php.ru/script_dlya_serve...-planet-10.html
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Revelation
сообщение 29.11.2013, 20:20
Сообщение #6
Стаж: 13 лет

Сообщений: 1051
Благодарностей: 401
Полезность: 1075

Недавно выкладывали в соседней теме. Клик
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя zippel
сообщение 30.11.2013, 11:54
Сообщение #7


Стаж: 17 лет

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

спасибо, но не работает. Так же пишет что серер в offline режиме.

Отредактировал: zippel, - 30.11.2013, 12:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 30.11.2013, 12:19
Сообщение #8


Стаж: 17 лет

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

а нет все ок, сорри. спс. все пашет.

Отредактировал: zippel, - 30.11.2013, 12:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 30.11.2013, 13:37
Сообщение #9


Стаж: 17 лет

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

Появилась проблема. Не могу заставить скрипт менять значение переменной $CounterStrikeStatus в зависимости от статуса сервера. Когда он онлайн значение должно быть одно, когда оффлайн - другое. Но вот трабл, видимо я что то не учитываю, и скрипт тупо не выставляет значений для этой переменной.

вот например скрипт, в нем уже есть попытки изменить значение переменной $CounterStrikeStatus
Код:
function cs_scan($ip, $port)
{
$fp = @fsockopen("udp://$ip",$port,$errno,$errstr);
@stream_set_timeout($fp,1,0); @stream_set_blocking($fp,true);

if (!$fp)
{
unset($data);

$data[address] = $ip.":".$port;
$data[gamemod] = "-";
$data[hostname] = "-";
$data[mapname] = "-";
$data[players] = "0";
$data[maxplayers] = "0";
$data[password] = "-";
$data[datatype] = "-";
$data[version] = "-";
$data[description] = "-";
$data[server_type] = "-";
$data[server_os] = "-";
$data[server_secure] = "-";
$data[server_bots] = "-";

return $data;
}

else
{
fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\x00");
$buffer = fread($fp,4096);

if (!$buffer)
{
fclose($fp);
unset($data);

$data[address] = $ip.":".$port;
$data[gamemod] = "-";
$data[hostname] = "-";
$data[mapname] = "-";
$data[players] = "0";
$data[maxplayers] = "0";
$data[password] = "-";
$data[datatype] = "-";
$data[version] = "-";
$data[description] = "-";
$data[server_type] = "-";
$data[server_os] = "-";
$data[server_secure] = "-";
$data[server_bots] = "-";

return $data;
}

$second_packet = $buffer;

if (strlen($second_packet) > 0)
{
$reverse_check = dechex(ord($buffer[8]));

if ($reverse_check[0] == "1")
{
$tmp = $buffer;
$buffer = $second_packet;
$second_packet = $tmp;
}

$buffer = substr($buffer, 13);
$second_packet = substr($second_packet, 9);
$buffer = trim($buffer.$second_packet);
$buffer = trim(substr($buffer, 4));

if (!trim($buffer))
{
unset($data);

$data[address] = $ip.":".$port;
$data[gamemod] = "-";
$data[hostname] = "-";
$data[mapname] = "-";
$data[players] = "0";
$data[maxplayers] = "0";
$data[password] = "-";
$data[datatype] = "-";
$data[version] = "-";
$data[description] = "-";
$data[server_type] = "-";
$data[server_os] = "-";
$data[server_secure] = "-";
$data[server_bots] = "-";

return $data;
}
}
}

fclose($fp);
unset($data);

$tmp = explode("\x00", $buffer);
$place = strlen($tmp[0].$tmp[1].$tmp[2].$tmp[3].$tmp[4]) + 5;
$data[address] = $ip.":".$port;
$data[gamemod] = $tmp[3];
$data[hostname] = $tmp[2];
$data[mapname] = $tmp[1];
$data[players] = ord($buffer[$place]);
$data[maxplayers] = ord($buffer[$place + 1]);
$data[password] = ord($buffer[$place + 5]);
$data[datatype] = $buffer[0]; // m для стрим инфы
$data[version] = ord($buffer[$place + 2]); // версия
$data[description] = $tmp[4];
$data[server_type] = $buffer[$place + 3]; // D выделный или L простой
$data[server_os] = $buffer[$place + 4]; // W под виндой или L под линуксом
$data[server_secure] = ord($tmp[14]); // VAC
$data[server_bots] = ord($tmp[15]); // кол-во ботов

$CounterStrikeStatus = "<span style=\"color: green; cursor: help;\" title=\"Игровой CS 1.6 сервер~-----------------~Адрес: $data[address]~Карта: $data[mapname]~Игроки: $data[players]/$data[maxplayers]\">online</span>";

if (substr_count($data[hostname],"banned") == 1)
{
$data[hostname] = " You have been banned from this server";
$data[mapname] = "-";
}

if ($data == "Server offline")
{
unset($data);
$data[hostname] = "Server Offline";
$data[mapname] = "-";
$data[players] = "0";
$data[maxplayers] = "0";
$CounterStrikeStatus = "<span style=\"color: red; cursor: help;\" title=\"сервер временно недоступен\">offline</span>";
}

return $data;
}

$i = 0;
$fn = "./server.txt";
$fil = file($fn);
$linmax = count($fil);

while ($i != $linmax)
{
$buf = explode("|",$fil[$i]);
$data = cs_scan(trim($buf[0]),trim($buf[1]));
$i++;
}

Пытаюсь вывести переменную на сайте, безуспешная попытка.
Код:
$content .= "<table border=\"0\" width=\"100%\" cellpadding=\"2\" cellspacing=\"0\">";
$content .= "<tr><td class=\"block\">Main Public</td><td class=\"block\" align=\"right\"><a href=\"./boost/\" target=\"_blank\" class=\"online\">$CounterStrikeStatus</a></td></tr>";
$content .= "</table>";
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 30.11.2013, 13:50
Сообщение #10


Стаж: 17 лет

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

поправил
Код:
function cs_scan($ip, $port)
{
$fp = @fsockopen("udp://$ip",$port,$errno,$errstr);
@stream_set_timeout($fp,1,0); @stream_set_blocking($fp,true);

if (!$fp)
{
unset($data);

$data[address] = $ip.":".$port;
$data[gamemod] = "-";
$data[hostname] = "-";
$data[mapname] = "-";
$data[players] = "0";
$data[maxplayers] = "0";
$data[password] = "-";
$data[datatype] = "-";
$data[version] = "-";
$data[description] = "-";
$data[server_type] = "-";
$data[server_os] = "-";
$data[server_secure] = "-";
$data[server_bots] = "-";

return $data;
}

else
{
fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\x00");
$buffer = fread($fp,4096);

if (!$buffer)
{
fclose($fp);
unset($data);

$data[address] = $ip.":".$port;
$data[gamemod] = "-";
$data[hostname] = "-";
$data[mapname] = "-";
$data[players] = "0";
$data[maxplayers] = "0";
$data[password] = "-";
$data[datatype] = "-";
$data[version] = "-";
$data[description] = "-";
$data[server_type] = "-";
$data[server_os] = "-";
$data[server_secure] = "-";
$data[server_bots] = "-";

$data[CounterStrikeStatus] = "<span style=\"color: red; cursor: help;\" title=\"сервер временно недоступен\">offline</span>";

return $data;
}

$second_packet = $buffer;

if (strlen($second_packet) > 0)
{
$reverse_check = dechex(ord($buffer[8]));

if ($reverse_check[0] == "1")
{
$tmp = $buffer;
$buffer = $second_packet;
$second_packet = $tmp;
}

$buffer = substr($buffer, 13);
$second_packet = substr($second_packet, 9);
$buffer = trim($buffer.$second_packet);
$buffer = trim(substr($buffer, 4));

if (!trim($buffer))
{
unset($data);

$data[address] = $ip.":".$port;
$data[gamemod] = "-";
$data[hostname] = "-";
$data[mapname] = "-";
$data[players] = "0";
$data[maxplayers] = "0";
$data[password] = "-";
$data[datatype] = "-";
$data[version] = "-";
$data[description] = "-";
$data[server_type] = "-";
$data[server_os] = "-";
$data[server_secure] = "-";
$data[server_bots] = "-";

return $data;
}
}
}

fclose($fp);
unset($data);

$tmp = explode("\x00", $buffer);
$place = strlen($tmp[0].$tmp[1].$tmp[2].$tmp[3].$tmp[4]) + 5;
$data[address] = $ip.":".$port;
$data[gamemod] = $tmp[3];
$data[hostname] = $tmp[2];
$data[mapname] = $tmp[1];
$data[players] = ord($buffer[$place]);
$data[maxplayers] = ord($buffer[$place + 1]);
$data[password] = ord($buffer[$place + 5]);
$data[datatype] = $buffer[0]; // m для стрим инфы
$data[version] = ord($buffer[$place + 2]); // версия
$data[description] = $tmp[4];
$data[server_type] = $buffer[$place + 3]; // D выделный или L простой
$data[server_os] = $buffer[$place + 4]; // W под виндой или L под линуксом
$data[server_secure] = ord($tmp[14]); // VAC
$data[server_bots] = ord($tmp[15]); // кол-во ботов

$data[CounterStrikeStatus] = "<span style=\"color: green; cursor: help;\" title=\"Игровой CS 1.6 сервер~---------------------------~Адрес: $data[address]~Карта: $data[mapname]~Игроки: $data[players]/$data[maxplayers]\">online</span>";

if (substr_count($data[hostname],"banned") == 1)
{
$data[hostname] = " You have been banned from this server";
$data[mapname] = "-";
}

if ($data == "Server offline")
{
unset($data);
$data[hostname] = "Server Offline";
$data[mapname] = "-";
$data[players] = "0";
$data[maxplayers] = "0";
}

return $data;
}

$i = 0;
$fn = "./server.txt";
$fil = file($fn);
$linmax = count($fil);

while ($i != $linmax)
{
$buf = explode("|",$fil[$i]);
$data = cs_scan(trim($buf[0]),trim($buf[1]));
$i++;
}


Теперь используется переменная $data[CounterStrikeStatus]

P.S.: так я и не понял с чем собственно это было связано :(

Отредактировал: zippel, - 30.11.2013, 13:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: