当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《来自User-AgentHTTP标头的操作系统》经验,为你挑选了3个好方法。

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



1> Nescio..:

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

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)


应该是:Windows 7 =>(Windows NT 6.1)
Windows 8是(Windows NT 6.2)
iOS设备的完整列表:http://enterpriseios.com/wiki/Complete_List_of_iOS_User_Agent_Strings
链接坏了.

2> Dan Herbert..:

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

PHP有" browser.php"将用户代理解析为操作系统,浏览器和浏览器版本:

http://www.geekpedia.com/code47_Detect-operating-system-from-user-agent-string.html(警告:Win7 Windows NT 6.1不是Windows NT 7.0)

Javascript具有Navigator对象,其中包含有关用户系统的大量详细信息

https://developer.mozilla.org/en/window.navigator

.NET有HttpBrowserCapabilities对象,可用于确定Win32或Win16,以及浏览器的有用功能

http://msdn.microsoft.com/en-us/library/system.web.httprequest.browser(VS.80).aspx

如果您只是想要原始用户代理,Zytrax.com还为不同系统上的各种不同浏览器提供了良好的用户代理数据库

http://www.zytrax.com/tech/web/browser_ids.htm

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

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

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

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



3> Sherm Pendle..:

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


您不能将其用作安全检查,否则就可以了.用户很少会调整他们的用户代理字符串,如果他们这样做,我不介意我的软件是否因为他们而失败.
"如果他们这样做,我不介意我的软件是否因为他们而失败":那么,你就是那个!
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有