我想知道是否有一种方法可以使用PHP / JS / ASP从浏览器中检测确切的操作系统版本?
我知道我可以检测操作系统的类型(Windows XP,Windows Vista,OS X等),但是我需要检测确切的版本:Vista Business,Vista Ultimate,Windows XP Home,Windows XP Pro等。
简短的回答: 不能。
长答案:
您所拥有的只是HTTP User-Agent标头中的信息,该标头通常包含操作系统名称和版本。
通常,在Mac OS和Linux上运行的浏览器会发送足够的信息以标识确切的OS。例如,这是我的User-Agent标头:
Mozilla / 5.0(X11; U; Linux x86_64; zh-CN; rv:1.9.0.7)Gecko / 2009030423 Ubuntu / 8.10(intrepid)Firefox / 3.0.7
您可以看到我正在运行Ubuntu 8.10 Intrepid Ibex。
这是MacBook Pro上Firefox和Safari 4 Beta的报告:
Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.7)Gecko / 2009021906 Firefox / 3.0.7 Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10_5_6; zh-cn)AppleWebKit / 528.16(KHTML,如Gecko)版本/4.0 Safari / 528.16
Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.7)Gecko / 2009021906 Firefox / 3.0.7
Mozilla / 5.0(Macintosh; U; Intel Mac OS X 10_5_6; zh-cn)AppleWebKit / 528.16(KHTML,如Gecko)版本/4.0 Safari / 528.16
另一方面,Windows浏览器通常仅报告操作系统版本,而不报告特定的软件包(Pro,Business等):
Mozilla / 5.0(Windows; U; Windows NT 5.1; zh-CN; rv:xxx)Gecko / 20041107 Firefox / xx