【问题标题】:Useragent string doesn't contain browser name用户代理字符串不包含浏览器名称
【发布时间】:2022-12-14 11:15:25
【问题描述】:

我在 Web 应用程序的日志中看到了很多这样的用户代理:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) 。由于用户代理不包含任何浏览器名称,有没有办法告诉用户使用的是什么浏览器和版本?另外,有谁知道这个用户代理是什么?操作系统似乎是 macOS X 10.13.6,但除此之外,没有关于浏览器是什么的信息。

【问题讨论】:

    标签: logging browser user-agent


    【解决方案1】:

    可悲的是,没有灵丹妙药可以做你想做的事。您必须使用已知用户代理列表查找用户代理的值。网络上有多种资源,其中之一是https://deviceatlas.com/blog/list-of-user-agent-strings,但您应该知道,随着浏览器的更新和发布,您必须定期更新您的列表。

    对于您的示例并使用上面的站点,Mozilla/5.0(Macintosh;Intel Mac OS X 10_13_6)将是使用 Safari 的基于 Mac OX X 的计算机,而 AppleWebKit/605.1.15(KHTML,如 Gecko)将是 Apple iPhone XR(它是 Safari)。

    有很多很棒的 JavaScript 库都具有此功能,找到其中许多链接的一个很棒的站点是:https://www.whatsmyua.info/ - 访问该站点,它会向您显示有关浏览器的已解析用户代理信息,它会提供您链接到许多将解析该值的 JavaScript 库。

    【讨论】:

    • 我懂了。我希望得到一个灵丹妙药来确定,但看起来这是不可能的。谢谢你。
    • @TuanDT 我明白,我们需要在我工作的地方做同样的事情,并且了解到没有灵丹妙药。但是您可以找到一些经过更新的很棒的库,它们可以为您完成任务,所以至少有一个可行的解决方案:-)
    【解决方案2】:

    您是否尝试过使用在线用户代理解析器工具?有很多可用的,但 https://51degrees.com/developers/user-agent-tester 是一个例子。你可以弹出你的用户代理,它会返回浏览器信息。在您提到的用户代理中,它显示它是一个 safari 浏览器,但不幸的是它不是什么版本,因为字符串中缺少它。如果您将来遇到任何奇怪的用户代理,使用在线解析器可能会有所帮助!

    披露:我为 51Degrees 工作,但我自己经常使用我们的用户代理解析器!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 2011-07-08
      • 2015-01-18
      • 1970-01-01
      • 2015-04-24
      • 1970-01-01
      相关资源
      最近更新 更多