浏览器信息检测器

-
语言
-
平台
-
屏幕

你的浏览器到底会告诉访问的网站什么?这个页面会收集浏览器暴露的每一项客户端信息,user agent、渲染引擎、版本、OS、设备类别、viewport 和屏幕尺寸、时区、语言偏好、do-not-track 设置以及你的公网 IP,并清晰展示出来,让你看到每次请求中哪些内容正在被用于指纹识别。

检测器如何收集信息

  1. 1

    读取 navigator 对象

    userAgent、platform、language、languages、cookieEnabled、doNotTrack、hardwareConcurrency 等会直接从浏览器查询。

  2. 2

    解析 user agent 字符串

    UA 字符串会与当前浏览器/引擎/OS 数据库匹配,提取品牌、版本和系列。

  3. 3

    查询 screen 和 window

    读取 window.innerWidth/Height、screen.width/height、screen.colorDepth、devicePixelRatio 以获取像素密度。

  4. 4

    通过 echo 服务检测 IP

    向 IP-echo endpoint 发送一次请求,返回公网 IPv4/IPv6。不会存储任何内容:每次访问都会重新检测。

检测器显示什么

字段 来源 示例
浏览器 + 版本 UA string + Client Hints Chrome 122.0.6261
渲染引擎 从 UA 推导 Blink
OS + 版本 UA + platform Windows 11, 64-bit
设备类型 UA + 触控支持 桌面 / 平板 / 手机
视口 window.innerWidth / innerHeight 1440 × 820 px
屏幕 screen.width / screen.height 2560 × 1440 px
像素比 window.devicePixelRatio 2
色深 screen.colorDepth 24 bits
首选语言 navigator.language zh-CN
所有语言 navigator.languages zh-CN, zh, en
时区 Intl.DateTimeFormat Asia/Shanghai (UTC+8)
请勿追踪(Do Not Track) navigator.doNotTrack unset / 1 / 0
已启用 Cookie navigator.cookieEnabled true
公网 IP Echo endpoint 203.0.113.42

为什么这很重要

  • 指纹识别:这些值的组合通常足够独特,即使没有 cookies,也能跨会话识别你的浏览器。可参考 EFF 的 Cover Your Tracks 项目了解量化熵估计。
  • 隐私泄露:某些字段(字体、WebGL renderer、audio context)会增加更多熵。Firefox 的 “resistFingerprinting” 和 Tor Browser 的标准化 profile 会减少这些信号。
  • 调试:当有人反馈“我的浏览器里不能用”时,获取这些字段是复现问题的第一步。

限制

  • UA 解析依赖会随浏览器发布而变化的模式。新的 Edge 版本可能会短暂显示为 Chrome,直到解析器更新。
  • Private relay(iCloud、Warp)会掩盖你的真实 IP;这种情况下检测器显示的是 relay IP。
  • Client Hints 在 Chromium 浏览器上取代了 UA;显示的 UA 可能是“reduced”的冻结字符串。

常见问题

不会。每个字段都在页面加载时检测,并在你离开页面后丢弃。IP echo 服务不会持久化请求。

User agent 和时区可以通过开发者工具或扩展伪装。屏幕尺寸、字体和 WebGL renderer 更难伪装,除非破坏页面渲染。注重隐私的浏览器会伪装大部分内容,但会牺牲一些兼容性。

如果你使用 iCloud Private Relay、Cloudflare Warp、VPN 或企业代理,检测到的是中间服务的 IP。如果浏览器使用多路径,不同 IP-echo 服务有时会看到不同中间节点。

即使伪装 UA,服务器也常能通过 TLS 指纹、特性检测(哪些 CSS 属性可用)和计时特征进行推断。完整匿名需要 Tor Browser 这类方案,而不只是调整 UA。

相关工具