用户代理字符串包含Chrome - 它真的是Chrome吗?

时间:2016-11-09 17:20:17

标签: google-chrome user-agent

我正在尝试分析我的网络服务器日志,并检查哪些用户从桌面计算机上的Chrome浏览器访问它。

我看到以下代理包含Chrome一词,但也包含Safari和Edge等字词:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.87 Chrome/49.0.2623.87 Safari/537.36

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 AOL/9.8 AOLBuild/4346.2019.US Safari/537.36

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36

Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36

Mozilla/5.0 (X11; CrOS x86_64 7834.66.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.111 Safari/537.36

为什么会这么混乱?我怎么知道哪一个真的是Chrome?

修改 主要问题不在此列表中 - 哪一个是Chrome。

3 个答案:

答案 0 :(得分:-1)

如果浏览器实际上是Chrome,则无法从UserAgent:标题中分辨出来。编写一个web bot / spider来输出你想要的任何UA字符串是微不足道的。

http://www.user-agents.org/有一个常见的UA字符串列表,这些字符串映射到各种浏览器,您可以在关联数组中使用这些字符串来最佳地猜测代理/声明的内容 - 但是没有办法“证明”它。

要使用它们,只需将它们加载到中间件语言或日志处理框架中的地图或数组结构中,然后根据UserAgent:标题字段中的左侧输入查找右列。

它令人困惑的原因是因为浏览器构建包含许多不同的组件(整个项目,布局引擎,浏览器代码库,变体,它依赖的OS组件,分发提供的值添加等等),这些命名空间可以碰撞。

答案 1 :(得分:-1)

以下是一些解释。

因此,您可以在Chrome浏览器上获得如下的用户代理字符串。

Mozilla / 5.0(Windows NT 10.0; WOW64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 54.0.2840.71 Safari / 537.36

这提供了基于Safari build 537.36的Chrome等平台以及Gecko或Trident等使用的布局引擎等信息。 您可以在http://www.useragentstring.com/index.php上为不同的浏览器找到此信息。

现在,不同的浏览器以他们的方式生成此信息。 Firefox提供

等信息

Mozilla / 5.0(Windows NT 10.0; WOW64; rv:49.0)Gecko / 20100101 Firefox / 49.0

现在如何正确检测浏览器,有很多好的信息。您可以查看有关

的更多信息

How to detect Safari, Chrome, IE, Firefox and Opera browser?

Browser detection in JavaScript?

对于c#,您可以参考https://msdn.microsoft.com/en-us/library/3yekbd5b.aspx?f=255&MSPPError=-2147217396

答案 2 :(得分:-1)

其中大多数是Chrome,但不是全部。

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.87 Chrome/49.0.2623.87 Safari/537.36

这是在Linux上运行的Chromium(基本上与Chrome相同的源代码)。将此视为与Chrome相同可能是有道理的。

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 AOL/9.8 AOLBuild/4346.2019.US Safari/537.36

这是AOL桌面,其浏览器是基于Chromium的。

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36
Mozilla/5.0 (X11; CrOS x86_64 7834.66.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.111 Safari/537.36

这些是Chrome,运行在不同的操作系统(Windows 7,Windows 10,OS X,Windows 8.1和Chrome OS)上。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586

这是Microsoft Edge(实际上并非基于Chrome,但此时它可能更像Chrome,而不是IE。)