Как я могу программно читать журналы сервера из HLDS?

Как можно читать и анализировать журналы сервера, отправленные удаленно с HLDS (выделенный сервер Half-Life)?

Насколько я понимаю, вы можете указать, куда сервер доставляет журналы, с помощью команды log_address. После этого сервер должен доставлять логи по UDP.

Как я могу прослушивать эти журналы с помощью PHP или ASP.NET C#? Я не знаю, должен ли я прослушивать входящие пакеты или отправлять запрос в HLDS для пакетов. Я пытался контролировать свои UDP-соединения с помощью netstat -a, но, похоже, не могу этого понять.

Примечание: я хотел бы использовать реализацию log_address, так как я не могу устанавливать на сервер какие-либо сторонние моды, чтобы помочь с процессом регистрации. Я также знаю о HLSW и не ищу клиентское приложение, подобное этому.

Спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
1 379
2

Ответы 2

Я знаю, что это старый вопрос, но я нигде не могу найти ответа на него. Я бы предпочел не объяснять UDP, так как это обсуждается снова и снова. Однако, если вы правильно предоставили серверу свой общедоступный IP-адрес и тот же порт, который вы слушаете с помощью UDP, и вы не получаете никаких данных, есть одна хитрость для фактического получения пакетов.

Вы должны отправить сообщение на сервер через стандартный игровой порт сервера. Неважно, что это такое, это может быть «привет» для всех забот сервера. После этого вы должны начать получать данные с сервера. Я не совсем уверен, почему это так, но, вероятно, это стратегия Valve, чтобы их серверы не рассылали спам только по любому старому IP-адресу.

Вам стоит взглянуть на драгоценный камень Парсер журналов Steam HLDS.

Это на Ruby и работает так:

  • на вашем hld используйте logaddress xxx.xxx.xxx.xxx yyyy, где x - это IP-адрес, а y - ваш порт, на который будут отправляться журналы с использованием UDP.
  • получить драгоценный камень и проверить пример: он получает и анализирует журналы и отображает содержимое.

Когда я говорю «display», на самом деле вы можете делать с возвращенным контентом все, что хотите (нажать на irc, записать в базу данных ...). Просто напишите свой собственный "дисплей"

Я опубликовал этот драгоценный камень несколько дней назад, не стесняйтесь попробовать и внести свой вклад. Недавно я добавил поддержку i18n с английским и французским переводами.

С Уважением.

Вы можете найти документацию по коду здесь: rubydoc.info/gems/steam_hlds_log_parser

tvial 04.10.2013 17:52

Другие вопросы по теме