我使用的是 macOS Big Sur 11.0.1。
我正在尝试使用以下脚本从用户代理获取操作系统版本:
$ua = $_SERVER['HTTP_USER_AGENT'];
echo "User Agent: $ua";
使用 Firefox(版本 83.0)的输出:
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:82.0) Gecko/20100101 Firefox/82.0
Safari 输出(版本 14.0.1):
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15
所以:
- Firefox 报告 Mac OS X 10.16
- Safari 报告 Mac OS X 10.15.6
Firefox 报告的 10.16 版本高于最新的 Catalina 版本 10.15.7。由于没有 Catalina 10.16,因此可以使用它来检测“比最新 Catalina 更新的任何内容”。
但是 Safari 报告的 10.15.6 是 Catalina 的实际版本号,因此 Safari 无法检测到 Big Sur。
有人知道这是怎么回事吗?
IMO 两个浏览器都应该报告 11.0.1。
最佳答案
这是临时更改。
“世界显然还没有为用户代理中的 macOS 11.0 做好准备。由于网络上令人沮丧的 UA 嗅探代码,让我们只报告我们当前的发布版本,直到事情稳定下来。”
关于php - macOS Big Sur 下包含奇怪版本号的用户代理字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64929071/