获取win11的操作系统信息

2023-02-27 15:44:27 浏览数 (1)

User-Agent字符串

User-Agent字符串是在HTTP协议中使用的一个标头,用于标识请求端的软件环境信息。它告诉服务器发送请求的客户端的操作系统、浏览器类型和版本、硬件平台等信息。 如果你想知道更多关于UA的信息可以看 浏览器野史 —— UserAgent 列传【转载】 - 沉默的博客 (cmsblog.cn)

那么有人就会问了,既然ua可以,告诉服务器发送请求的客户端的操作系统,那应该能够获取Win11的操作系统信息,然而事实却不是这样的,因为us各种历史原因下的产物,微软官方已经正式确定不会更新win11的UA信息,这意味着我们将无法通过UA获取到win11操作系统的信息

既然我们无法通过ua识别win11,那有没有其他办法呢?答案是:有!

使用User-Agent客户端提示检测Windows 11

在 Microsoft Edge (和 Google Chrome) 中,网站可以通过User-Agent客户端提示 (UA-CH) 来区分Windows 11用户和Windows 10用户。 可以在以下 UA-CH 请求标头中找到此信息:

标头字段

指示Windows 10的值

指示Windows 11的值

Sec-CH-UA-Platform

Windows

Windows

Sec-CH-UA-Platform-Version

和 之间的 1.0.0 值 10.0.0

13.0.0 及更高版本

支持User-Agent客户端提示的浏览器

下表显示了哪些浏览器支持区分Windows 11和Windows 10。

浏览器

支持通过User-Agent客户端提示进行区分?

Microsoft Edge 94

Chrome 95

Opera

Firefox

Internet Explorer 11

用于检测Windows 11的示例代码

以下代码检测Windows 11:

代码语言:javascript复制
navigator.userAgentData.getHighEntropyValues(["platformVersion"])
 .then(ua => {
   if (navigator.userAgentData.platform === "Windows") {
     const majorPlatformVersion = parseInt(ua.platformVersion.split('.')[0]);
     if (majorPlatformVersion >= 13) {
       console.log("Windows 11 or later");
      }
      else if (majorPlatformVersion > 0) {
        console.log("Windows 10");
      }
      else {
        console.log("Before Windows 10");
      }
   }
   else {
     console.log("Not running on Windows");
   }
 });

以上信息来自微软官方文档

0 人点赞