【问题标题】:How can website determine os version? [closed]网站如何确定操作系统版本? [关闭]
【发布时间】:2017-04-22 06:15:24
【问题描述】:

如何编写一个网站,以确定用户是否使用 Windows 的服务器版本进行浏览?

例子:

  • 如果用户使用Windows Server 2016 => Server
  • 如果用户使用Windows 10 => not Server

【问题讨论】:

  • 第一个问题,为了排除X/Y问题——为什么?
  • 见this post,那里有一个很好的答案。
  • 我编辑了问题以使其更易于阅读。

标签: javascript html web


【解决方案1】:

使用 javascript 可以轻松完成。请参阅以下链接: Can I use JavaScript to detect the operating system on the client machine

使用 java,您可以使用 System.getProperty("os.name"),但这并不符合您的目的,因为这将为您提供运行 java 的操作系统,这将是服务器的操作系统

我刚刚发现了这个,我认为它可以解决您的问题:

How can I get client infomation such as OS and browser

【讨论】:

    【解决方案2】:

    您可以使用navigator.userAgent,它将返回一个包含各种信息的字符串,例如在我的机器上:

    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36"
    

    那么我们可以这样做:

    function getOS() {
        if (navigator.userAgent.includes('NT 10.0')) {
            return 'Win10';
        } else if (navigator.userAgent.includes('NT 8.1')) {
            return 'Win8.1';
        }
        //etc...
    }
    

    【讨论】:

    • 你不能依赖这个。你可以改变它。
    • 但我的问题是:我可以检测它是否是 Windows 服务器版本吗?)
    • 在服务器机器上的浏览器中打开一个 Javascript 控制台并输入navigator.userAgent,给我输出,我会更新我的答案。
    • "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36"
    • @user3006028 那是 Win10 字符串。正如我所说,我不知道 Windows Server 2016 用户代理和谷歌没有证明是富有成效的,但我已经更新了我对 win10/8.1 的答案。如果你能得到 2016 年的用户代理,那么我可以帮你弄清楚条件应该是什么。
    猜你喜欢
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多