本站提供一个只读接口,返回本次请求的来源 IP 与 Cloudflare 边缘地理信息。 适合做 IP 查询、地理定位、ASN 归属展示。IP 原样返回,不做遮挡。
/api/ip/api/ip (自测)加载中…
curl -s https://YOUR-DOMAIN.pages.dev/api/ip | jq
const r = await fetch('https://YOUR-DOMAIN.pages.dev/api/ip');
const { ip, geo } = await r.json();
console.log(ip); // "223.94.111.223"
console.log(geo.city, geo.country); // "Hangzhou" "CN"
console.log('AS' + geo.asn, geo.asOrganization); // "AS56041" "China Mobile..."
import requests
d = requests.get('https://YOUR-DOMAIN.pages.dev/api/ip').json()
print(d['ip'], d['geo']['country'], d['geo']['city'])
| 字段 | 类型 | 说明 |
|---|---|---|
ok | boolean | 恒为 true |
ip | string | 来源 IP,完整未遮挡 |
ipVersion | number | 4 或 6 |
geo.country | string | 两位国家代码,如 CN |
geo.region / geo.city | string | 省 / 市 |
geo.latitude / geo.longitude | string | 城市级坐标,非精确位置 |
geo.timezone | string | IANA 时区,如 Asia/Shanghai |
geo.asn / geo.asOrganization | number / string | 自治系统号与运营商名称 |
geo.colo | string | Cloudflare 边缘节点代码,如 HGH |
geo.tlsVersion / geo.tlsCipher | string | 本次连接实际使用的 TLS 参数 |
geo.clientTcpRtt | number | TCP 往返延迟(毫秒) |
viaCloudflare | boolean | 是否经 Cloudflare 边缘 |
ts | string | 响应时间,ISO 8601 |
浏览器指纹通过你的浏览器和设备所暴露的设置与能力组合来识别和追踪用户。与 Cookie 不同,它无需在本地存储数据,也很难清除,是现代网络中最持久的追踪技术之一。
浏览器指纹是描述你设备软硬件配置的一组属性集合。它不像 Cookie 那样在你的设备上存储标识符,而是读取数十项信号——屏幕分辨率、语言、时区、已安装字体、显卡硬件等——并将它们组合成一份独特画像。由于这种组合很少有两台设备完全相同,网站便能在你再次访问时认出你,并跨站点关联你的行为,即使你清除了浏览数据也无济于事。
页面加载时,脚本会通过标准的 JavaScript 接口查询你的浏览器。每一项返回值——User-Agent 字符串、色彩深度、CPU 核心数、触摸支持、可用字体——都会增加几比特的识别信息。单独看没有哪一项是唯一的,但信息熵会不断累积:把十五到二十个弱识别信号组合起来,结果往往在数百万用户中是唯一的。网站将这些值哈希成一个稳定的 ID 并存储在服务器端,完全不受你的控制。
Canvas 指纹会要求你的浏览器在离屏画布上绘制隐藏的文字或图形,再读回像素数据。由于显卡、图形驱动和抗锯齿处理的细微差异,渲染结果对你的设备而言是稳定的,但在不同机器之间各不相同。WebGL 指纹更进一步,探测你的 3D 图形栈,获取渲染器名称、支持的扩展和着色精度。两者结合,是追踪者可获取的信息熵最高的信号之一。
指纹识别不止于图形。AudioContext 接口可用于处理一段静音波形,其输出会因硬件和操作系统而产生细微差别。字体枚举可检测你安装了哪些字体,往往能暴露你的操作系统和应用程序。其他向量还包括媒体设备、硬件并发数和时序测量。追踪者会融合多种向量,因此即便你伪装了其中一项,其余信号仍能识别出你。
WebRTC 为实时音视频设计,历史上曾被用来绕过 VPN 直接暴露你的局域网地址甚至公网地址。现代浏览器默认启用 mDNS 混淆,把本地地址随机成 xxxx.local 主机名,泄露面已大幅收窄——但检测仍有价值:如果你的 ICE candidate 里出现了 192.168.x.x,说明混淆被关闭了,这本身就是一个异常信号。
反直觉的目标是让自己看起来普通,而非隐形。Tor、Brave 等浏览器刻意让大量用户共享相同指纹,因此「融入人群」比「鹤立鸡群」更有效。避免使用罕见扩展、奇异字体和异常屏幕尺寸,保持浏览器更新,并定期检测——一个只伪装了某一项值却在别处留下矛盾的脚本,反而会让你更容易被识别。
stun.l.google.com:19302 发送真实请求,你的 IP 因此会暴露给该 STUN 服务 —— 这是判断「VPN 是否漏了 UDP」唯一可行的办法,不联网就问不到浏览器自己看到的出口 IP。如果你不想联网,可在浏览器策略里禁用 WebRTC,该项会显示「无公网候选」。另外 /api/ip 只回显 HTTP 请求头里本来就有的 IP,不落库、不写 Cookie。navigator.webdriver 为 true;二是装了改 UA 或改 Canvas 的隐私插件,导致信号自相矛盾;三是浏览器内核版本与 UA 声明不符。每一项的详细原因都会列在检测结果里。wrangler pages deploy 一条命令即可。