寻找Java用户代理字符串解析器

时间:2009-09-29 16:26:05

标签: java parsing user-agent

有没有人知道java中用于解析用户代理字符串的优秀库?我们写了一个自定义的,但这似乎是许多人的常见问题。我猜想某个地方有一个很好的图书馆。

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

“Mozilla / 5.0(Windows; U; Windows NT 6.0; en-US)AppleWebKit / 532.0(KHTML,与Gecko一样)Chrome / 3.0.195.21 Safari / 532.0”

...在我们的网站上以密码方式宣布使用Chrome的Windows Vista PC的到来。

我在python和ruby中看过库。在那里的任何东西?

2 个答案:

答案 0 :(得分:15)

然后尝试一个每月更新的新库,可在中央存储库中找到:http://uadetector.sourceforge.net/

它是user-agent-string.info的另一个包装器,但与其他实现相比,具有更加可靠和经过测试的实现。

我正在开发一个稳定的API 1.0,我希望在今年年底发布。在API 1.0发布之后,您不必重新编译任何内容。您只需在应用程序li​​b目录中切换uadetector-resources.jar。 “每月更新”功能意味着,如果您需要经过集成测试的“UAS数据”文件,您可以保证它与定义的核心一起运行,而不是满足您的需求。但是如果您对更新JAR(由我测试)不感兴趣,那么您可以使用具有风险的OnlineUserAgentStringParser,该实现不适合使用自动下载的XML运行。我不想根据需要发布更多'uadetector-core'软件包,特别是在1.0版本的API发布时。

客户端的另一个解决方案可能是,当他使用OnlineUserAgentStringParser并自定义属性文件以设置正确的URL时,他维护自己的'UAS数据'。

答案 1 :(得分:4)

据我所知(我不应该为什么,它是我以前工作过的服务公司提供的产品),在正确完成后检测用户代理实际上是一件好事商业本身。

有几个免费的数据库,例如WURFL包含一些用户代理的基本识别模式,但那些主要集中在例如移动电话上,所以最后你可能不得不继续使用你制作的那个而且只是添加从/ export导入到与当前用户代理标识元数据状态相关的各种相关格式的功能。

如果你不打算远离桌面/ PC世界,你将不必担心,因为那里只有四个主要的布局引擎,当然还有一组具有不同功能的版本。四个大问题是Trident in IEMozilla's GeckoKDE's WebKit(至少在Safari和Chrome中)和Opera's Presto中的一个。