Web 如何检测用户是否在网站上使用Mac或Windows

Web 如何检测用户是否在网站上使用Mac或Windows,web,detection,operating-system,Web,Detection,Operating System,标准的、最可靠的方法是什么?当用户在我的网站上单击“下载”时,我需要重定向用户以下载我的软件的Mac版本或Windows版本。在Javascript中: 没有一种方法是完美的,因为用户总是可以欺骗用户代理 我建议: 1) 自动重定向到带有链接的页面,或自动更新带有文字“下载Mac版”或“下载Windows版”的页面上的链接,以便用户在单击之前知道他们得到了什么 2) 如果您的检测在他们的情况下不起作用,或者如果他们想在远程机器上下载,然后将其传输到其他机器上,仍然可以让用户选择下载其他版本。不

标准的、最可靠的方法是什么?当用户在我的网站上单击“下载”时,我需要重定向用户以下载我的软件的Mac版本或Windows版本。

在Javascript中:

没有一种方法是完美的,因为用户总是可以欺骗用户代理

我建议:

1) 自动重定向到带有链接的页面,或自动更新带有文字“下载Mac版”或“下载Windows版”的页面上的链接,以便用户在单击之前知道他们得到了什么


2) 如果您的检测在他们的情况下不起作用,或者如果他们想在远程机器上下载,然后将其传输到其他机器上,仍然可以让用户选择下载其他版本。

不是100%可靠,但是您可以从HTTP头中的a推断出很多信息。

您需要使用
navigator.platform
或解析
navigator.userAgent

您想查看在http头中找到的用户代理


它很容易被欺骗,但您可以通过检查用户代理字符串进行很好的猜测。您可以使用JavaScript或服务器端语言来实现这一点


因为您可能会错误地检测到它,所以您应该在某处放置一个“想要Mac OS X版本”等等。

@Mitch,但是浏览器可以位于用户代理字符串上,不是吗?如果有足够的动机,网络客户端可以对任何事情撒谎。在服务器上看到的网络数据包没有“mac”或“windows”的固有特性,至少没有不可伪造的东西。而试图欺骗网站以获得错误下载的好处到底是什么?。。。这就是为什么我明确表示它不是“100%可靠的”@DOK,哈哈,让我发笑。“我要求错误的下载链接-我要编辑我的用户代理字符串!”