Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Статистика серверов, Получение статистики от серверов 
V
    Опции темы
ArNic
Дата 18.10.2007, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 3.1.2007

Репутация: нет
Всего: нет



Дано: Есть статус-лист(on/off) серверов по категориям:
  • игры
  • P2P-хабы
  • сайты
для локальных серверов пиринга.

Решил: Немного усовершенствовать, дополнив данные листы отображением во что играют, сколько людей играет, сколько людей на хабах, сколько людей на форумах партнерах

Проблема: Не нашел как сделать выдрать нужную информацию с серверов.

Пояснение: С сайтами понятно (там просто найти соответсвующую строку и считать после определенного текста данные), а вот как быть с игровыми серверами, их много видов (начиная от CS заканчивая Linage и WOW). К тому же там есть такие данные как название карты и кол-во игроков. P2P-хабы же дают только название, а остальное не считывается при коннекте.


PM MAIL ICQ   Вверх
flashaa
Дата 19.10.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Что касается игр на базе Халф Лайф - их много, а протокол у них один. Тебе нужно найти этот протокол.. Вот например протокол Source Engine (на нем общаются CSS, DoDS, HL2) - http://www.int64.org/docs/gamestat-protocols/source.html
Дальше, зная протокол, формируешь запрос для сервера.. И отправляешь и ждешь ответа. Получаешь ответ и разбираешь его опять-таки в соответствии с протоколом. В полученных данных и будет вся информация, которая требуется.
Там есть несколько запросов, общие и более специфичные, например об игроках... Вот чтобы узнать доп инфу, надо отправить другой запрос и так же разобрать его ответ. Инфа о запросах есть в полной мере на страницах с протоколами. На той странице, что я привел, есть раздел "Players Query" - вот он и нужен.

Код

$fp = fsockopen("udp://".$server, $port);

   if (!$fp) {echo "error";}
  else {
  
     fwrite($fp, "\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10));
     socket_set_timeout($fp,3,0);
    $st = fread($fp, 1);
    $r = socket_get_status($fp);


В других играх все аналогично.

Это сообщение отредактировал(а) flashaa - 19.10.2007, 11:28
PM MAIL   Вверх
ArNic
Дата 19.10.2007, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 3.1.2007

Репутация: нет
Всего: нет



Спасибо

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.