【问题标题】:How can I programmatically read server logs from HLDS?如何以编程方式从 HLDS 读取服务器日志?
【发布时间】:2016-12-18 08:37:21
【问题描述】:

如何读取和解析从 HLDS(半衰期专用服务器)远程发送的服务器日志?

我的理解是,你可以使用命令log_address指定服务器将日志传递到哪里。在此之后,服务器应该通过 UDP 传递日志。

如何使用 PHP 或 ASP.NET C# 来监听这些日志?我不知道我是否应该监听传入的数据包,或者向 HLDS 发送数据包请求。我尝试使用 netstat -a 监控我的 UDP 连接,但似乎无法弄清楚。

注意:我想使用 log_address 实现,因为我无法在服务器上安装任何第三方模块来协助记录过程。我也知道 HLSW,我不是在寻找这样的客户端应用程序。

谢谢。

【问题讨论】:

    标签: c# php udp


    【解决方案1】:

    我知道这是一个老问题,但在我能找到的任何地方都没有答案。我宁愿不解释 UDP,因为它已经被一遍又一遍地覆盖了。但是,如果您正确地为服务器提供了您的公共 IP 地址和您正在使用 UDP 侦听的相同端口并且您没有收到任何数据,那么实际接收数据包有一个技巧。

    您必须在服务器的标准游戏端口上向服务器发送消息。不管它是什么,它可以是所有服务器关心的“你好”。之后,您应该开始从服务器获取数据。我不确定这是为什么,但这可能是 Valve 的一种策略,以避免他们的服务器向任何旧 IP 发送垃圾邮件。

    【讨论】:

      【解决方案2】:

      你应该看看Steam HLDS Log Parser gem。

      它是用 Ruby 编写的,并且是这样工作的:

      • 在您的 hlds 上,使用 logaddress xxx.xxx.xxx.xxx yyyy 其中x 是 IP,y 是您的端口,将使用 UDP 发送日志
      • 获取gem,查看示例:它接收并解析日志,并显示内容。

      当我说display 时,实际上你可以对返回的内容做你想做的事情(推送到 irc,写入数据库......)。只需编写自己的“显示器”

      我几天前发布了这个 gem,请随时尝试和贡献。 我最近添加了对英语和法语翻译的 i18n 支持。

      问候。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-13
      • 2016-09-06
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 2011-07-12
      • 2015-09-26
      • 2013-11-23
      相关资源
      最近更新 更多