2009-01-10 94 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

相關問題