2009-01-10 60 views
1

如何阅读和解析从HLDS(半条命专用服务器)远程发送的服务器日志?如何以编程方式从HLDS读取服务器日志?

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

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

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

谢谢。

回答

0

我知道这是一个古老的问题,但它没有回答我能找到的任何地方。我不想解释UDP,因为它一直被覆盖。但是,如果您正确地向服务器提供了公共IP地址和您使用UDP监听的相同端口,并且您没有收到任何数据,则实际接收数据包有一个技巧。

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

0

你应该看看Steam HLDS Log Parser宝石。

它在Ruby和工作原理类似:

  • 您HLDS,使用logaddress xxx.xxx.xxx.xxx yyyy其中x是IP和y你的端口,并且日志将使用UDP
  • 获得宝石被发送,并检查例如:它接收并解析日志,并显示内容。

当我说display,实际上你可以做你想要的与返回的内容(推入irc,写入数据库中...)。只需编写您自己的“显示器”

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

问候。

+0

你可以在这里找到代码文档:http://rubydoc.info/gems/steam_hlds_log_parser – tvial 2013-10-04 13:52:34

相关问题