Как можно читать и анализировать журналы сервера, отправленные удаленно с HLDS (выделенный сервер Half-Life)?
Насколько я понимаю, вы можете указать, куда сервер доставляет журналы, с помощью команды log_address. После этого сервер должен доставлять логи по UDP.
Как я могу прослушивать эти журналы с помощью PHP или ASP.NET C#? Я не знаю, должен ли я прослушивать входящие пакеты или отправлять запрос в HLDS для пакетов. Я пытался контролировать свои UDP-соединения с помощью netstat -a, но, похоже, не могу этого понять.
Примечание: я хотел бы использовать реализацию log_address, так как я не могу устанавливать на сервер какие-либо сторонние моды, чтобы помочь с процессом регистрации. Я также знаю о HLSW и не ищу клиентское приложение, подобное этому.
Спасибо.





Я знаю, что это старый вопрос, но я нигде не могу найти ответа на него. Я бы предпочел не объяснять UDP, так как это обсуждается снова и снова. Однако, если вы правильно предоставили серверу свой общедоступный IP-адрес и тот же порт, который вы слушаете с помощью UDP, и вы не получаете никаких данных, есть одна хитрость для фактического получения пакетов.
Вы должны отправить сообщение на сервер через стандартный игровой порт сервера. Неважно, что это такое, это может быть «привет» для всех забот сервера. После этого вы должны начать получать данные с сервера. Я не совсем уверен, почему это так, но, вероятно, это стратегия Valve, чтобы их серверы не рассылали спам только по любому старому IP-адресу.
Вам стоит взглянуть на драгоценный камень Парсер журналов Steam HLDS.
Это на Ruby и работает так:
logaddress xxx.xxx.xxx.xxx yyyy, где x - это IP-адрес, а y - ваш порт, на который будут отправляться журналы с использованием UDP.Когда я говорю «display», на самом деле вы можете делать с возвращенным контентом все, что хотите (нажать на irc, записать в базу данных ...). Просто напишите свой собственный "дисплей"
Я опубликовал этот драгоценный камень несколько дней назад, не стесняйтесь попробовать и внести свой вклад. Недавно я добавил поддержку i18n с английским и французским переводами.
С Уважением.
Вы можете найти документацию по коду здесь: rubydoc.info/gems/steam_hlds_log_parser