57

在映射用户代理 HTTP 标头字符串 --> 操作系统的任何地方是否有一个好的、最新的列表?

4

7 回答 7

54

这是一个快速列表...如果我错过了您感兴趣的一个,请告诉我。

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,
Search Bot=>(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves /Teoma)|(ia_archiver)

于 2008-10-23T01:58:01.187 回答
14

你用什么语言开发?如果您想对用户代理字符串进行数据挖掘,这对您可用的内容有很大的影响。

Nescio 的回应提供了一个很好的清单。我列表中 PHP 下的第二个链接也包含基本相同的信息,这些信息非常简单,您应该能够将其翻译成任何语言。

请记住,将用户代理用于任何事情都会有很多问题。除非您愿意将一部分开发时间用于监控访问您网站的用户代理并执行持续维护,否则您应该尽量避免完全这样做。无论您需要检测操作系统的用例是什么,每个平台中的每个操作系统都可能在很短的时间内发生巨大的变化,因此请务必注意这一点,并仔细考虑如何以及为什么进行操作系统检测。

详细说明风险:在桌面上,每 6 周(Chrome OS)、6 个月(Ubuntu)、1 年(Mac OS)或 2-3 年(Windows)可能会出现一个新的操作系统版本。然后,您还需要考虑为手机、平板电脑、游戏机、时钟等发布的操作系统,这些操作系统可能具有更频繁的发布周期和不可预测的市场份额变化。只需看看黑莓、Palm OS、Web OS、iOS、Android、Windows Mobile 和 Windows Phone 在过去几年中市场份额的变化等等。

除非操作系统是您网站的依赖项,例如如果您正在为应用程序创建一个有针对性的“下载”页面(这本身可能会出现问题),几乎总是最好使用功能检测,这将允许您无需不断维护浏览器或操作系统检测代码,即可让您的开发面向未来。

于 2008-10-23T02:07:27.720 回答
8

值得记住的是,用户代理标头很容易被伪造。我不会在任何重要的事情上依赖它。

于 2008-10-23T02:02:07.763 回答
2

进行 UA 嗅探几乎总是一个坏主意。你根本不能依赖它。

如果您想向客户端发送特定于其环境的响应,您可能应该区分内容类型或编码的差异。这些是坚如磐石的指定

于 2008-11-04T05:33:59.037 回答
2

浏览器中的用户代理不是我所依赖的任何东西,我们都将它用于统计,但我们知道它们不是 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)

当您查看它时,您需要解析不同的部分,操作系统是括号之间以分号分隔的值的第三部分。

于 2008-11-04T05:50:07.753 回答
1

现在我可以从http://user-agent-string.info推荐数据库。您可以识别用户代理以及操作系统(如果可用)。

我正在开发 Java 库UADetector并每月合并一个新版本的数据库(又名 UAS 文件),以 XML 和 INI 格式提供。因此,根据我的经验,我可以说这些数据是最新的。通常的更新间隔在 5 到 10 天之间。

于 2013-01-08T20:44:52.393 回答
1

我正在寻找同样的东西,然后发现:
http ://www.useragentstring.com

很棒,但非常详尽:您可能需要重新考虑您需要列表的项目,因为这个项目将“事情放在眼里”。

只是想分享这个给未来研究这个的人。

于 2013-01-08T04:04:37.337 回答