【免费下载链接】one-ip
瞬息洞察 IP 纯净底色与风险评级。仅需一键探寻,物理坐标、机房源流与代理轨迹尽收眼底。一站式 IP 与网络诊断工具箱:查询归属、ASN、信誉与风险,检测网络出口、DNS/CDN、浏览器指纹与 WebRTC,聚合 AI 服务状态。
One IP 是一个一站式的 IP 查询与网络诊断工具箱,可以查 IP 归属、ASN、信誉分,检测网络出口、浏览器指纹与 WebRTC 等。作为一个面向公众开放的免费工具,它每天要处理大量来自陌生访客的请求。本文带你拆解 One IP 安全设计背后的三大原理:接口限流、隐私保护与数据来源治理,理解一个公开 API 工具箱是如何在"好用"与"可靠"之间取得平衡的。
📌 核心要点速览
- ⚙️双档限流:普通 API 每分钟 180 次,敏感动作每分钟 5 次,按访客 IP 独立计数
- 🔒隐私最小化:日志永不记录访客 IP,API 响应不缓存,查询历史只存在你自己的浏览器里
- 📡多源交叉:归属地、信誉分、注册信息来自多个公开数据源,结果不匹配时直接拒绝返回
一、限流设计:为什么请求会被"限频"
公共工具最怕的不是功能少,而是被滥用。One IP 的限流不是一层"限速器",而是一套分层的防御体系。
双档限流:给不同接口设不同的"闸门"
打开部署配置 wrangler.toml,可以看到基于 Cloudflare Ratelimits 的两组计数器:
| 限流器 | 适用接口 | 阈值 |
|---|---|---|
API_LIMITER | 所有 GET 查询类 API | 每 60 秒 180 次 |
ACTION_LIMITER | Ping 启动、验证码校验等 POST 动作 | 每 60 秒 5 次 |
计数键是请求头CF-Connecting-IP中的访客地址(见 public/worker/index.js)。也就是说,限流按"人"而不是按"接口总量"计算:一个用户疯狂刷新不会挤占其他人的额度。触发限流时返回 HTTP 429 和提示"请求过于频繁,请一分钟后重试"。
为什么动作接口阈值只有 5 次?因为 Ping 启动、验证码校验这类 POST 动作背后是真实的第三方资源消耗(全球探针、校验服务),而简单的 GET 查询成本更低。这就是限流设计的核心思路:成本越高,阈值越低。
纵深防御:同源、方法与响应体积限制
限流之外,Worker 入口还有一连串"前置安检"(public/worker/index.js):
- 同源限制:
Origin与站点不一致直接 403,防止其他网页在用户不知情下借用他的 IP 发起查询 - 方法白名单:只允许 GET/POST,其余 405
- 响应体积封顶:所有上游响应经 boundedJson() 读取,超过 2MB 立即截断,避免恶意大报文耗尽 Worker 内存
- 10 秒超时:upstream() 统一使用
AbortSignal.timeout(10_000),上游卡顿时不会拖垮整个请求链路
还有一个容易被忽略的细节:当上游数据源限流时(返回 429),One IP 会把 429 原样透传给前端并提示"外部数据源限流,请稍后重试",而不是重试轰炸上游。在 public/worker/ip-type.js 中还能看到本地冷却策略——一旦 ip-api.com 返回限流头,就按对方的X-Ttl设置冷却窗口,冷却期内直接返回"不可用",用 1 小时缓存兜底。限流不是单向的,尊重上游的限流同样是设计的一部分。
二、隐私保护:查 IP 不等于泄露 IP
One IP 的业务是"帮你查 IP",所以它比一般工具更在意:查询行为本身会不会成为新的隐私泄露点。
隐藏 IP 开关:截图分享前先打码
首页右上角有一个"隐藏 IP"开关(状态存储在 src/store/privacy.ts 的hideIpAtom原子中)。开启后,页面上所有 IP、位置、运营商信息自动打码显示为"IP 已隐藏"。官方截图同样遵循这一习惯——上方桌面首页截图中被灰色遮盖的位置,正是 IP 与运营商信息。
日志最小化:错误日志里"什么都不记"
在 Worker 的全局异常处理中(public/worker/index.js)有这样一条注释:
// Never log visitor IP, request URL, credentials, or upstream error bodies.实际代码只记录event和错误类型两个字段。同时配合 wrangler.toml 的采样日志配置(head_sampling_rate = 0.1,invocation_logs = false),把服务端留存的访客行为痕迹压到最低。
响应不缓存,历史只存在本地
- 所有 API 响应统一携带
Cache-Control: no-store(见 public/worker/http.js),查询结果不会被 CDN 或中间层缓存后被他人读取 - 查询历史仅保存在你当前浏览器的 localStorage中,按类别保留最近 10 条(src/hooks/use-lookup-history.ts),清除站点数据即可全部删除
- 隐私测试页的摄像头/麦克风授权"获取流后立即关闭,不录制音视频";WebRTC 检测中 mDNS 混淆的本地地址不会被误报为公网 IP
完整的承诺可以在站内的隐私政策页查看,实现位于 src/views/policy.tsx。
三、数据来源:多源交叉与"不匹配就拒绝"
免费工具的另一个信任难题是:你看到的数据到底从哪来、准不准?One IP 的策略是"多源 + 校验"。
每个字段从哪里来
开源版本全部使用互联网公开可访问的数据与第三方公开接口:
| 数据 | 来源 | 说明 |
|---|---|---|
| 当前出口 IP 与位置 | Cloudflarerequest.cf | /api/me接口直接读取请求元数据 |
| IP 归属地 | ipwho.is + IP.SB | 双源并行,交叉对比(public/worker/geo.js) |
| IP 信誉分与风险标记 | Net.Coffee | 0–100 分,附住宅/机房/代理等标记 |
| 注册信息(WHOIS) | IANA / RDAP | 域名、IP、ASN 注册资料 |
| 全球 Ping | Globalping | 全球探针延迟与丢包 |
| 地图 | 天地图(可选)/ OpenStreetMap | 未配置 Token 时回退 OpenStreetMap |
多源并行的好处在 public/worker/index.js 中体现得很清楚:/api/ip/lookup/同时向主源、副源和 RDAP 发起请求,用Promise.allSettled汇总——任何一个源挂了,其余源的结果照常返回,可用性不依赖单点。
结果校验:数据对不上就拒绝返回
多源只是"交叉",真正的严谨在于校验。以 public/worker/ip-health.js 为例:
- 先把你提交的 IP 过一遍 publicIp() 白名单,私有、回环、保留地址(如 10.x、127.x)一律 400 拒绝,避免被当作探测内网的跳板
- 请求 Net.Coffee 后,再次校验上游返回的 IP 必须与查询目标完全一致,不一致直接 502
- 信誉分、标记逐字段做类型检查,缺失值返回
null而不是猜测的false——"不知道"和"确定没有"是两回事
文本输出还会过滤控制字符,防止上游数据在终端里注入转义序列(public/worker/ip-health.js)。
写在最后
回顾 One IP 安全设计的三大原理:
- 🛡️限流分层:按访客 IP 分档计数,成本越高阈值越低,并尊重上游的限流信号
- 🔒隐私最小化:错误日志不记 IP、响应不缓存、历史只留本地,连截图都自带打码文化
- 📡来源可信:多源并行、字段级校验、结果不匹配即拒绝,宁可返回"未知"也不返回"猜测"
这些设计对普通用户意味着两件事:放心使用免费额度,同时知道每个数字的出处。如果你对数据处理的细节还有疑问,可以参考站内隐私政策与使用条款页面,以及 docs/config/challenges.env.example 中关于可选验证功能的配置示例。
【免费下载链接】one-ip
瞬息洞察 IP 纯净底色与风险评级。仅需一键探寻,物理坐标、机房源流与代理轨迹尽收眼底。一站式 IP 与网络诊断工具箱:查询归属、ASN、信誉与风险,检测网络出口、DNS/CDN、浏览器指纹与 WebRTC,聚合 AI 服务状态。
相关推荐
FeHelper安全与隐私保护:本地数据处理与最小权限原则详解
FeHelper安全与隐私保护:本地数据处理与最小权限原则详解 在当今数字化时代,浏览器扩展的安全性和隐私保护能力备受关注。作为一款功能强大的Web前端助手,F
前端开发工具BV隐私计算:数据安全与隐私保护
BV隐私计算:数据安全与隐私保护 引言:第三方应用的数据安全挑战 在数字时代,隐私保护已成为用户最关注的核心问题之一。作为哔哩哔哩的第三方Android TV应
移动开发音视频T3Q_SOLAR_SLERP_v1.0-openmind模型合并教程:使用SLERP方法的完整流程
T3Q_SOLAR_SLERP_v1.0 openmind模型合并教程:使用SLERP方法的完整流程 想要创建功能更强大的AI模型吗?T3Q_SOLAR_SLE
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考