来自User-Agent HTTP头的操作系统
是否有一个很好的,最新的列表映射到User-Agent HTTP头string – >操作系统?
这里有一个快速列表,让我知道如果我错过了你感兴趣的一个。
http://www.geekpedia.com/code47_Detect-operating-system-from-user-agent-string.html :
//将用户代理string与操作系统匹配
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,
打开BSD => OpenBSD,
Sun OS => SunOS,
Linux =>(Linux)|(X11),
Mac OS =>(Mac_PowerPC)|(Macintosh),
QNX => QNX,
BeOS => BeOS,
OS / 2 => OS / 2,
searchBot =>(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves / Teoma)|(ia_archiver)
你在开发什么语言? 如果要在用户代理string上进行数据挖掘,那么这会对您可用的内容产生巨大的影响。
- PHP有一个“
browser.php
”,它将用户代理parsing成操作系统,浏览器和浏览器版本:- http://www.geekpedia.com/code47_Detect-operating-system-from-user-agent-string.html (警告:Win7是
Windows NT 6.1
而不是Windows NT 7.0
)
- http://www.geekpedia.com/code47_Detect-operating-system-from-user-agent-string.html (警告:Win7是
- Javascript有Navigator对象,它有很多关于用户系统的细节
- .NET有HttpBrowserCapabilities对象,可用于确定Win32或Win16,以及浏览器的有用function
- Zytrax.com还拥有一个很好的用户代理数据库,用于不同的系统上的各种不同的浏览器,如果你只想要原始的用户代理
内西西奥的回答提供了一个很好的清单。 PHP中的第二个链接在我的列表中也包含基本相同的信息,它足够简单,您应该能够将其翻译成任何语言。
请记住,使用用户代理的任何事情都充满了问题。 除非您愿意花一部分开发时间来监视访问您的站点的用户代理并进行持续的维护,否则应尽量避免完全执行此操作。 无论您需要检测操作系统的用途是什么,每个平台上的每个操作系统都可能在极短的时间内发生巨大变化,因此务必注意这一点,并小心操作系统检测的方式和原因。
详细阐述风险:在桌面上,每6周(Chrome操作系统),6个月(Ubuntu),1年(Mac OS)或2 – 3年(Windows)将推出新的操作系统版本。 那么你也需要考虑手机,平板电脑,游戏机, 时钟等发行的操作系统,这些操作系统可能会有更频繁的发布周期和不可预测的市场份额变化。 只要看看黑莓,Palm OS,Web OS,iOS,Android,Windows Mobile和Windows Phone如何在过去几年中改变了市场份额。
除非操作系统是你的网站的依赖,如果你正在创build一个应用程序的目标“下载”页面(这本身可以充满问题),使用function检测几乎总是更好,这将允许您不必经常维护浏览器或操作系统检测代码就能够面向未来的开发。
值得记住的是,用户代理标题很容易被伪造。 我不会依赖它来做任何重要的事情。
UA嗅探几乎总是一个坏主意。 你根本无法依靠它。
如果你想向客户端发送一个特定于其环境的响应,你应该区分内容types或编码。 这些是坚定的指定 。
从浏览器的用户代理是不是我所依赖的任何东西,我们都使用它的统计,但我们知道他们不是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)
当你在看它的时候,你需要parsing不同的部分,操作系统是括号内用分号分隔的值的第三部分。
现在我可以从http://user-agent-string.info推荐数据库。; 您可以识别用户代理以及操作系统(如果可用)。
我正在开发Java库UADetector ,并每月合并一个新版本的数据库(又名UAS文件),以XML和INI格式提供。 所以,我可以从我的经验来看,这个数据是最新的。 通常的更新间隔在5到10天之间。
我正在寻找同样的东西,然后发现:
http://www.useragentstring.com
好极了,但是非常精细:你可能会想重新考虑你需要列表的项目,因为这个项目是“透视”的。
只是想分享这个为未来的人研究这个。