来自User-Agent HTTP标头的操作系统

时间:2008-10-23 01:53:26

标签: http-headers user-agent

是否在映射User-Agent HTTP标头字符串的任何地方都有一个好的,最新的列表 - >操作系统?

7 个答案:

答案 0 :(得分:51)

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

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)|(啜食)|(MSNBot会)|(向   Jeeves公司/ TEOMA的)|(ia_archiver)

答案 1 :(得分:14)

你在用什么语言发展?如果您想对用户代理字符串进行数据挖掘,那么这对您可用的内容产生巨大影响。

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

请注意,使用任何的用户代理会遇到问题。除非您愿意将一部分开发时间用于监控访问您站点的用户代理并执行持续维护,否则您应该尽量避免完全执行此操作。无论您需要检测操作系统的用例是什么,每个平台中的每个操作系统都可以在非常短的时间范围内进行重大更改,因此请务必注意这一点,并注意操作系统检测的方式和原因。

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

除非操作系统是您网站的依赖关系,例如,如果您正在为应用创建目标“下载”页面(其本身可能充满问题),使用{{3>几乎总是更好这将使您能够在不需要经常维护浏览器或操作系统检测代码的情况下保证您的开发能力。

答案 2 :(得分:7)

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

答案 3 :(得分:2)

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

如果您想向客户端发送特定于其环境的响应,您应该区分内容类型或编码的差异。这些是rock-solid specified

答案 4 :(得分: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)

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

答案 5 :(得分:1)

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

很棒,但非常精细:你可能想要重新考虑你需要列表的项目,因为这个项目将“事物放在透视中”。

只是想分享一下这对未来的人们进行研究。

答案 6 :(得分:1)

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

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