ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Php скрипт мониторинга
  #1  
Старый 23.01.2008, 04:25
Аватар для WebManN
WebManN
Новичок
Регистрация: 23.01.2008
Сообщений: 7
Провел на форуме:
42880

Репутация: 0
Arrow Php скрипт мониторинга

Здравствуйте, уважаемые форумчане!

Пришел к Вам с непростым вопросом.

Интересует простой скрипт для проверки сервера, уже есть функция, публиковавшаяся уважаемыми людьми на этом форуме, но она не всегда работает и глючит:
PHP код:
function GetServerInfo($server,$port) {
     
$fp = @fsockopen("udp://".$server$port);
     if (!
$fp) return false;

     @
fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x  45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00  ".chr(10));
     
$start=time();
     
socket_set_timeout($fp,1);
     
$st=fread($fp,1);
     
$r=socket_get_status($fp);
     
$r=$r["unread_bytes"];
     if (
$r == 0) { @fclose($fp); return false;}
     
$st.=fread($fp,$r);
     @
fclose($fp);

     
$st=substr($st,5);
    
     
$address=SubStr($st,0,StrPos($st,chr(0)));
     
$address=str_replace(chr(0),"|",$address);

     
$st=SubStr($st,StrPos($st,chr(0))+1);
     
$name=SubStr($st,0,StrPos($st,chr(0)));
     
$st=SubStr($st,StrPos($st,chr(0))+1);
     
$map=SubStr($st,0,StrPos($st,chr(0)));
     
$st=SubStr($st,StrPos($st,chr(0))+1);
     
$st=SubStr($st,StrPos($st,chr(0))+1);
     
$st=SubStr($st,StrPos($st,chr(0))+1);
     
$current=ord(SubStr($st,0,1));
     
$max=ord(SubStr($st,1,1));

     if (
$map == "") return false;
     
$result['map'] = $map;
     
$result['name']= $name;
     
$result['current'] = $current;
     
$result['max'] = $max;

     return 
$result;

Обращаюсь к Вам, как к профессионалам, с просьбой.

Меня, если чесно, интересует мониторинг не CS, а Team Fortress 2. Но если по CS еще можно найти хоть какую-то информацию, то по TF2 это бессмысленно.

То есть фактически все функции подобного вида посылают UDP запрос. А далее, нужно написать лишь парсер, который правильно будет обрабатывать ответ. Но проблема в том, что я с этим не сталкивался, поэтому и прошу Вас помочь.

Рад буду увидеть любую информацию по этому поводу.

Заранее спасибо всем за ответы.
 
Ответить с цитированием

  #2  
Старый 23.01.2008, 05:24
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

http://forum.antichat.ru/threadedpost557250.html#post557250
 
Ответить с цитированием

  #3  
Старый 23.01.2008, 05:32
Аватар для WebManN
WebManN
Новичок
Регистрация: 23.01.2008
Сообщений: 7
Провел на форуме:
42880

Репутация: 0
Arrow

Благодарю, сейчас буду смотреть.

Прямо сейчас работаю над одним скриптом, собственно говоря больное одно место, где идет обработка полученного ответа. Причем приходит оно в плохом состоянии.

PHP код:
$st.=fread($fp,$r);
$st=substr($st,5);

$server_name =SubStr($st,0,StrPos($st,chr(0)));
$server_name =str_replace(chr(0),"|",$address);


$st=SubStr($st,StrPos($st,chr(0))+1);
$name=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$map=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$current=ord(SubStr($st,0,1));
$max=ord(SubStr($st,1,1)); 
Для проверки твоего скрипта под CS можно попробовать следующие сервера Team Fortress 2:
217.19.212.4:27017
89.222.192.208:27027
89.113.76.181:27015

Там просто, как специально, ответ другой и все портится.
 
Ответить с цитированием

  #4  
Старый 23.01.2008, 05:36
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Снифай Team Fortress и сокетами отправляй пакеты/получай ответы
Хотя в инете где-то полюбому есть скрипты..попробуй поищи...
 
Ответить с цитированием

  #5  
Старый 23.01.2008, 05:38
Аватар для WebManN
WebManN
Новичок
Регистрация: 23.01.2008
Сообщений: 7
Провел на форуме:
42880

Репутация: 0
Arrow

То есть ответ от сервера идет такой:
Цитата:
IDC TF2 Server WEB STATS ==TF2.idknet.com==ctf_respect-b4tfTeam Fortressё
Если обработать
PHP код:
str_replace(chr(0),"|",$st
, то получается вот такой вид:

Цитата:
IDC TF2 Server WEB STATS ==TF2.idknet.com==|ctf_respect-b4|tf|Team Fortress|ё| |dw|1.0.1.6|
То есть уже имя сервера и карту я вырезаю спокойно.

Осталось только научиться вырезать сколько играет онлайн, и сколько всего мест.

Кстати, вывод игроков(кто играет онлайне) идет отлично с КС`совского скрипта.

Насчет скриптов - в том-то и дело, что я довольно много времени потратил, но не нашел. Есть только для CS.
 
Ответить с цитированием

  #6  
Старый 23.01.2008, 05:39
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Посмотрел твои сервера в своей стате..
Все отлично показывает кроме кол-ва и статы игроков на сервере...
 
Ответить с цитированием

  #7  
Старый 23.01.2008, 05:44
Аватар для WebManN
WebManN
Новичок
Регистрация: 23.01.2008
Сообщений: 7
Провел на форуме:
42880

Репутация: 0
По умолчанию

Количество онлайн/всего мест.
Для меня важно это.

А статистика игроков - сколько фрагов, у меня показывает отлично.

Я тебе на Icq написал, может сможешь выйти, если не трудно, чтобы мы тут чат не устраивали?
 
Ответить с цитированием

  #8  
Старый 10.02.2008, 23:49
Аватар для WebManN
WebManN
Новичок
Регистрация: 23.01.2008
Сообщений: 7
Провел на форуме:
42880

Репутация: 0
По умолчанию

Все, разобрался.

tf-monitor.net.ru - вот, что получилось.
 
Ответить с цитированием

  #9  
Старый 11.02.2008, 02:45
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Если разобрался, покажи нам
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Продаю скрипт МОНИТОРИНГА обменных пунктов BestCurs Разное - Покупка, продажа, обмен 0 17.01.2008 01:28
Что такое Php? PAPA212 Болталка 13 28.12.2007 20:44
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ