本文摘要User-Agent字符串不会更新为区分Windows 11和Windows 10,也不会区分 CPU 体系结构。 建议不要使用User-Agent字符串来检索用户代理数据。 不支持User-Agent客户端提示的浏览器将无法区分Windows 11和Windows 10,也无法区分 CPU 体系结构。一、使用User-Agent客户端提示检测Windows 11在 Microsoft Edge ...

User-Agent字符串不会更新为区分Windows 11和Windows 10,也不会区分 CPU 体系结构。 建议不要使用User-Agent字符串来检索用户代理数据。 不支持User-Agent客户端提示的浏览器将无法区分Windows 11和Windows 10,也无法区分 CPU 体系结构。
一、使用User-Agent客户端提示检测Windows 11
在 Microsoft Edge (和 Google Chrome) 中,网站可以通过User-Agent客户端提示 (UA-CH) 来区分Windows 11用户和Windows 10用户。 可以在以下 UA-CH 请求标头中找到此信息:
二、支持的浏览器
| 浏览器版本 | 是否支持 |
|---|---|
| Microsoft Edge 94+ | 支持 |
| Chrome 95+ | 支持 |
| Opera | 支持 |
| Firefox | 不支持 |
| Safari | 不支持 |
三、实现原理
3.1 JS代码
3.2 部分php代码
$getAgent = $archive->request->getAgent();
// 修改 User-Agent 的字符串
if(isset($_COOKIE['win11'])){
$newAgent = str_replace('Windows NT 10.0', 'Windows NT 11.0', $getAgent);
}else{
$newAgent = $getAgent;
}
// 保存修改后的 User-Agent 提交到评论数据库表
$db = Typecho_Db::get();
$db->query($db->update('comments')
->rows(array('agent' => $newAgent))
->where('coid = ?', $comment->coid));觉得内容不错?我要