【发布时间】:2010-09-18 16:48:33
【问题描述】:
在映射用户代理 HTTP 标头字符串 --> 操作系统的任何地方是否有一个好的、最新的列表?
【问题讨论】:
-
自从问了这个问题,就跑题了(求第三方资源)。它不应该重新打开。
在映射用户代理 HTTP 标头字符串 --> 操作系统的任何地方是否有一个好的、最新的列表?
【问题讨论】:
这是一个快速列表...如果我错过了您感兴趣的一个,请告诉我。
http://www.geekpedia.com/code47_Detect-operating-system-from-user-agent-string.html:
// 将用户代理字符串与操作系统匹配
Windows 3.11 => Win16,
Windows 95 => (Windows 95)|(Win95)|(Windows_95),
Windows 98 => (Windows 98)|(Win98),
Windows 2000 => (Windows NT 5.0)|(Windows 2000),
Windows XP => (Windows NT 5.1)|(Windows XP),
Windows Server 2003 => (Windows NT 5.2),
Windows Vista => (Windows NT 6.0),
Windows 7 => (Windows NT 6.1),
Windows 8 => (Windows NT 6.2),
Windows 10 => (Windows NT 10.0),
Windows NT 4.0 => (Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT),
Windows ME => Windows ME,
Open BSD => OpenBSD,
Sun OS => SunOS,
Linux => (Linux)|(X11),
Mac OS => (Mac_PowerPC)|(Macintosh),
QNX => QNX,
BeOS => BeOS,
OS/2 => OS/2,
Bot=>(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)
【讨论】:
你用什么语言开发?如果您想对用户代理字符串进行数据挖掘,这将对您可用的内容产生巨大影响。
browser.php”,它将用户代理解析为操作系统、浏览器和浏览器版本:
Windows NT 6.1 不是 Windows NT 7.0)Nescio 的回复提供了一个很好的列表。我列表中 PHP 下的第二个链接也包含基本相同的信息,这些信息非常简单,您应该能够将其翻译成任何语言。
请记住,将用户代理用于任何事情都会遇到很多问题。除非您愿意将一部分开发时间用于监控访问您站点的用户代理并执行持续维护,否则您应该尽量避免完全这样做。无论您需要检测操作系统的用例是什么,每个平台中的每个操作系统都可能在很短的时间内发生巨大的变化,因此请务必注意这一点,并注意如何以及为什么进行操作系统检测。
详细说明风险:在桌面上,每 6 周 (Chrome OS)、6 个月 (Ubuntu)、1 年 (Mac OS) 或 2-3 年 (Windows) 可能会出现一个新的操作系统版本。然后,您还需要考虑为手机、平板电脑、游戏机、clocks 等发布的操作系统,这些操作系统可能具有更频繁的发布周期和不可预测的市场份额变化。只需看看黑莓、Palm OS、Web OS、iOS、Android、Windows Mobile 和 Windows Phone 在过去几年中市场份额的变化等等。
除非操作系统是您网站的依赖项,例如,如果您正在为应用程序创建有针对性的“下载”页面(这本身可能会出现问题),那么使用feature detection 几乎总是更好,这将使您无需不断维护浏览器或操作系统检测代码,就可以让您的开发适应未来发展。
【讨论】:
值得牢记的是,用户代理标头很容易被伪造。我不会在任何重要的事情上依赖它。
【讨论】:
进行 UA 嗅探几乎总是一个坏主意。你根本不能依赖它。
如果您想向客户端发送特定于其环境的响应,您可能应该区分内容类型或编码的差异。这些是rock-solid specified。
【讨论】:
浏览器中的用户代理不是我可以依赖的任何东西,我们都将它用于统计,但我们知道它们并非 100% 准确。
我使用 firefox 并经常在一些不喜欢它的网站上欺骗 IE,我的常规 UA 是:
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3)
Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.3
我有时会使用 Firefox 扩展将其更改为:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MS-RTC LM 8;
.NET CLR 2.0.50727; .NET CLR 1.1.4322)
当您查看它时,您需要解析不同的部分,操作系统是括号之间的分号分隔值的第三部分。
【讨论】:
我在找同样的东西,然后找到:
http://www.useragentstring.com
很棒,但非常详尽:您可能需要重新考虑您需要列表的项目,因为这个项目可以“透视事物”。
只是想分享给未来研究这个的人。
【讨论】:
现在我可以从http://user-agent-string.info 推荐数据库。您可以识别 User-Agent 以及操作系统(如果可用)。
我正在开发 Java 库 UADetector 并每月合并一个新版本的数据库(也称为 UAS 文件),以 XML 和 INI 格式提供。因此,根据我的经验,我可以说这些数据是最新的。通常的更新间隔是 5 到 10 天。
【讨论】: