5

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

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

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

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

4

7 回答 7

9

我可以模仿其他浏览器/平台吗?

有很多方法可以欺骗用户代理字符串。在 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, like Gecko) Chrome/3.0.195.38 Safari/532.0

我在哪个平台?

Javascript 选项

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

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

于 2009-12-30T02:45:36.797 回答
5

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

每次您向任何服务器发出请求时,该信息都会出现在User-Agent HTTP 标头中。

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

检查此链接User-Agent以获取有关使用 firefox 进行欺骗的更多信息。

于 2009-12-30T02:46:37.027 回答
3

您可以在 JavaScript中使用navigator.platform :

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

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

于 2009-12-30T02:47:51.580 回答
1

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

Opera 浏览器具有欺骗功能,可以将自己呈现为另一种浏览器类型,以避免浏览器阻塞。

于 2011-11-14T00:13:22.313 回答
1

它可能是从 User-Agent 字符串中猜测的。

于 2009-12-30T02:46:10.303 回答
1

这是完整的代码。可能会对某人有所帮助,它会检测到哪个操作系统用户正在使用和版本,但它在 Window 7 home/professional/ultimate 等版本中并没有那么深入,那个版本要复杂得多。

//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; 
}
于 2012-09-14T23:38:43.763 回答
0

用户代理切换器firefox插件可以“欺骗”不同的 Web 浏览器。

于 2009-12-30T15:19:51.430 回答