2009-09-29 70 views
37

有沒有人知道在Java解析用戶代理字符串偉大的庫?我們寫了一個自定義的,但這對許多人來說似乎是一個普遍問題。我猜想有一個好的圖書館可用。尋找一個Java用戶代理字符串解析器

例如,用戶代理字符串...

「的Mozilla/5.0(窗口; U; Windows NT的6.0; EN-US)爲AppleWebKit/532.0(KHTML,例如Gecko)鍍鉻/ 3.0.195.21 Safari瀏覽器/532.0「

......在我們的網站上隱祕地宣佈使用Chrome瀏覽器的Windows Vista PC的到來。

我見過python和ruby的庫。在那裏的任何東西?

回答

4

據我所知(和爲什麼不應該,這是服務公司,我曾經在工作之一,其產品提供),當處理得當,其實是一個很好的業務本身檢測用戶代理。

有幾個免費的數據庫,如WURFL包含一些基本的用戶代理標識模式,但主要側重於例如手機,所以最終你可能不得不繼續使用你所做的,並添加功能從導入/導出到與當前用戶代理標識元數據狀態有關的各種相關格式。

如果你不打算擺脫桌面/ PC世界,你不會有太多擔心,因爲只有四個主要的佈局引擎,當然有一系列具有不同功能的版本。四個大的是Trident in IE,Mozilla's Gecko,KDE's WebKit(至少在Safari和Chrome)和Opera's Presto中的一個。

15

然而嘗試每月更新一次,可在中央資料庫新庫:http://uadetector.sourceforge.net/

這是另一個包裝爲user-agent-string.info,但有更加堅實和測試執行相對於其他的人。

我正在開發一個穩定的API 1.0,我想在今年年底發佈。 API 1.0發佈後,您不必重新編譯任何內容。您只需在應用程序庫目錄中切換uadetector-resources.jar。 「每月更新」的功能意味着,如果您想要一個集成測試的「UAS數據」文件,您可以保證它與定義的內核一起運行,那麼這個文件就可以滿足您的需求。但是如果您對更新JAR(我已經測試過)不感興趣,那麼您可以使用帶有風險的OnlineUserAgentStringParser,該實現不適合與自動下載的XML一起運行。我不想根據需要發佈更多的'uadetector-core'軟件包,特別是當1.0版本的API發佈時。

客戶端的另一個解決方案可能是當他使用OnlineUserAgentStringParser並自定義屬性文件以設置正確的URL時,他爲自己維護'UAS數據'。

+0

這似乎是[user-agent-string.info](http://user-agent-string.info)數據的另一個包裝。它與[他們自己的庫](http://user-agent-string.info/download/UASparser-for-JAVA)相比如何?從你的gravatar我猜這是你自己的項目?不過,我不確定每月更新是否是一項功能 - 您希望您的客戶每月重新編譯並重新發布其應用程序? – Rup 2012-05-08 09:44:52

+0

@Rup感謝您的反饋!我希望我的解釋能給你更多的見解。 – before 2012-05-15 22:39:04