如何阅读和解析从HLDS(Half-Life Dedicated Server)远程发送的服务器日志?
我的理解是您可以使用命令log_address
指定服务器传递日志的位置。在此之后,服务器应该通过UDP传递日志。
如何使用PHP或ASP.NET C#监听这些日志?我不知道我是应该监听传入的数据包,还是向HLDS发送数据包请求。我试图使用netstat -a
监控我的UDP连接,但似乎无法解决这个问题。
注意:我想使用log_address实现,因为我无法在服务器上安装任何第三方mod来协助记录过程。我也知道HLSW,并不是在寻找像这样的客户端应用程序。
谢谢。
答案 0 :(得分:0)
我知道这是一个古老的问题,但在我能找到的任何地方都无法回答。我宁愿不解释UDP,因为它已经被覆盖了一遍又一遍。但是,如果您已正确地为服务器提供了您的公共IP地址和您正在使用UDP监听的相同端口,并且您没有获得任何数据,那么实际接收数据包就有一个技巧。
您必须在服务器的标准游戏端口上向服务器发送消息。无论它是什么,它都可以为所有服务器关注“问好”。之后,您应该开始从服务器获取数据。我不确定为什么会这样,但这可能是Valve的策略,以避免他们的服务器发送任何旧IP的垃圾邮件。
答案 1 :(得分:0)
您应该查看Steam HLDS Log Parser gem。
它在Ruby中,就像那样:
logaddress xxx.xxx.xxx.xxx yyyy
,其中x
是ip,y
你的端口将使用UDP发送日志当我说display
时,实际上你可以用返回的内容做你想做的事(推送到irc,写入数据库......)。只需编写自己的“显示器”
我几天前发布了这个宝石,随时尝试贡献。 我最近添加了i18n支持英语和法语翻译。
问候。