如何查看网站查看器的操作系统?

时间:2009-12-30 02:43:32

标签: javascript operating-system os-detection

我正在运行Ubuntu 8.04,我最近在访问网站时收到以下错误:

  

请使用运行Windows 98,2000,Me,NT或XP的计算机返回www.site.com。

  1. 网站如何知道我正在运行哪个操作系统?是仅通过javascript还是请求标题中还有操作系统信息?

  2. 我是否有办法绕过此检查或“假装”使用Windows,以便即使我运行的操作系统不受支持,也可以访问该网站?

7 个答案:

答案 0 :(得分:8)

我可以模仿另一个浏览器/平台吗?

欺骗用户代理字符串的方法有很多种。在Firefox中,恰好有一个名为“User Agent Switcher”的扩展程序,它允许您模仿其他浏览器。

https://addons.mozilla.org/en-US/firefox/addon/59

用户代理

经常检查用户代理可以告诉您这一点。例如,我的用户代理是:

  

Mozilla / 5.0(Windows; U; Windows NT 6.0; en-US)AppleWebKit / 532.0(KHTML,与Gecko一样)Chrome / 3.0.195.38 Safari / 532.0

我在哪个平台上?

Javascript选项

您还可以使用Javascript中的navigator对象来获取一些信息。例如:

alert(navigator.platform);  // alerts Win32
alert(navigator.userAgent); // Mozilla/5.0 (Windows; U; Windows NT 6.0...

PHP选项

您可以从$ _SERVER数组中获取PHP中的用户代理:

print $_SERVER["HTTP_USER_AGENT"]; // Mozilla/5.0 (Windows; U; Windows NT...

PHP还有其他好东西,例如PHP中的get_browser() * 函数,它返回一系列信息,包括platform

Array
(
    ...
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    ...
)

* get_browser()依赖于browscap.ini - 有关详细信息,请参见http://www.php.net...php#ini.browscap

答案 1 :(得分:5)

  

网站如何知道我正在运行哪个操作系统?是仅通过javascript还是请求标题中还有操作系统信息?

每次向任何服务器发出请求时,该信息都会显示在User-Agent HTTP header中。

  

我是否有办法绕过此检查或“假装”使用Windows以便即使我运行的操作系统不受支持,也可以访问该网站?

使用firefox在User-Agent欺骗中查看this link以获取更多信息。

答案 2 :(得分:3)

您可以在JavaScript中使用navigator.platform

var OS = navigator.platform;
alert(OS);

这样您就不必担心解析用户代理了。

答案 3 :(得分:1)

可能是用户代理字符串猜测。

答案 4 :(得分:1)

服务器端脚本将向Web浏览器显示信息,该信息指示用户的浏览器类型和版本以及操作系统。例如,在PHP中,您有get_browser()

Opera浏览器具有欺骗的功能,可以将自身显示为另一种浏览器类型,以避免浏览器阻止。

答案 5 :(得分:1)

这是完整的代码。可能会帮助某人,它可以检测到哪个操作系统用户正在使用和版本,但它在Windows 7家庭/专业/终极等版本中并没有那么深,那就更复杂了。

//OS DETECTION... 
function find_os(){ 
var OSVer=""; 
if (navigator.userAgent.indexOf("Mac OS X 10.4")!=-1) OSVer="MacOS Tiger"; 
if (navigator.userAgent.indexOf("Mac OS X 10.5")!=-1) OSVer="MacOS Leopard"; 
if (navigator.userAgent.indexOf("Mac OS X 10.6")!=-1) OSVer="MacOS Snow Leopard"; 
if (navigator.userAgent.indexOf("NT 5.1")!=-1) OSVer="Windows XP"; 
if (navigator.userAgent.indexOf("NT 6.0")!=-1) OSVer="Windows Vista"; 
if (navigator.userAgent.indexOf("NT 6.1")!=-1) OSVer="Windows 7"; 
if (navigator.userAgent.indexOf("Linux")!=-1) OSVer="Linux"; 
if (navigator.userAgent.indexOf("X11")!=-1) OSVer="UNIX"; 

returh OSVer; 
}

答案 6 :(得分:0)

User Agent Switcher firefox附加组件可以“欺骗”其他网络浏览器。