【问题标题】:How to detect if user is using Mac or Windows on website如何检测用户在网站上使用的是 Mac 还是 Windows
【发布时间】:2010-01-29 10:15:23
【问题描述】:

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

【问题讨论】:

    标签: web detection operating-system


    【解决方案1】:

    在 Javascript 中:

    http://www.quirksmode.org/js/detect.html

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

    我会建议:

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

    2) 仍然为用户提供下载其他版本的选项,以防您的检测在他们的情况下不起作用,或者如果他们想在远程机器上下载,然后再将其转移到另一台机器上。

    【讨论】:

      【解决方案2】:

      它很容易被欺骗,但是您可以通过检查用户代理字符串来做出很好的猜测。您可以使用 JavaScript 或服务器端语言执行此操作。

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

      【讨论】:

        【解决方案3】:

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

        User Agent

        【讨论】:

          【解决方案4】:

          不是 100% 可靠,但您可以从 HTTP 标头中的 user-agent string 推断出很多信息。

          【讨论】:

          • @Mitch,但是浏览器可以躺在用户代理字符串上,不是吗?
          • 只要有足够的动机,网络客户端可以在任何事情上撒谎。对于一个显示“mac”或“windows”的服务器来说,网络数据包没有任何内在的东西,至少没有什么是不能伪造的。
          • 尝试欺骗网站以获取错误下载的好处是什么?
          • ...这就是为什么我明确指出它不是“100% 可靠”
          • @DOK,哈哈,笑死我了。 “我要求错误的下载链接 - 我要编辑我的用户代理字符串!”
          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 2014-07-14
            • 1970-01-01
            • 2011-10-17
            • 2014-07-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-07-13
            相关资源
            最近更新 更多