CFIP:一个跑在 Cloudflare Workers 上的 IP 查询工具

CFIP:一个跑在 Cloudflare Workers 上的 IP 查询工具平时折腾 VPS、排查代理节点,最常干的事就是查 IP:这个 IP 是哪里的?是不是机房?有没有进黑名单?市面上的 IP 查询站不少,但要么只给个归属地,要么塞满广告和统计脚本,查个 IP 还得先”接受 Cookie”。一怒之下自己写了一个——CFIP,一次查询,把一个 IP 的事全说清楚。

它能查什么

输入任意 IPv4/IPv6(或者留空查本机),一次返回:

  • 归属地:国家/省/市/邮编/经纬度/时区。国内数据来自 ip2region 离线库,中文省市归属精准,且查询本身不发网络请求
  • 运营商与 ASN:ISP、ORG、ASN 编号与名称
  • 节点属性:云厂商/CDN 识别、托管还是住宅、是否 Anycast——判断”这是个节点还是个真人”很好用
  • 信誉:5 个 DNSBL 黑名单(含命中原因)、代理/VPN/Tor 识别,可选接入 AbuseIPDB 滥用评分
  • 注册局信息:RDAP 网段 CIDR、RIR、注册时间、滥用投诉邮箱
  • rDNS 反解:走 Cloudflare DoH

这些信息不是抄单一数据源,而是 9 个数据源并行查询、字段级优先级合并的结果:地理信这家、ASN 信那家、rDNS 走 DoH,哪个源挂了自动降级到下一个,连续失败还有熔断保护。判定类字段(比如”这是托管 IP”)都带 confidence 和 source,推断强度摆在明面上,不装权威。

设计上比较在意的几件事

零密钥可用。 所有默认数据源都不需要 API Key,clone 下来部署就能跑,不注册任何账号。

多源聚合,不赌单点。 Worker 出站走的是 Cloudflare 共享出口,单源配额说挂就挂,所以每个字段都有降级链;底层几个不限量的骨干源(RDAP/DoH/bgp.tools)兜底,最差情况也能出结果。

前端零外部请求。 无 CDN、无统计脚本、无广告位(统计/广告是可选项,默认全关),内联 SVG 地图,查询历史存 localStorage。页面上不会有一个字节发往第三方。

隐私。 不记录查询日志、不建查询数据库,只有 6 小时的结果缓存——顺便也是为了对共享出口的上游限流友好。

命令行也照顾到了。 用 curl 访问根路径直接给纯文本摘要,/ip 端点只回 IP 地址,写监控脚本不用解析 HTML:

curl https://<your-worker>.workers.dev/ip
curl https://<your-worker>.workers.dev/api?ip=8.8.8.8

顺手加的工具箱

查 IP 查多了,有些需求是连着的,索性做进去:

  • 出口探测 /api/probe:看各 AI/云服务视角下 Worker 的出口 IP 与可达性
  • 域名工具箱 /api/domain:DoH 解析 + CDN 识别 + RDAP WHOIS,一条命令看清一个域名挂在哪
  • 全球 Ping /api/ping:基于 Globalping 的分布式 ping/http/dns 测量,从几十个国家测你的服务器
  • 服务状态 /api/status:Cloudflare / GitHub / OpenAI / Anthropic 状态一屏聚合

技术实现一句话

TypeScript + Cloudflare Workers,ip2region 的 11MB 离线库作为 Workers Assets 随代码一起部署(xdb 二进制查询是自己实现的,没用现成 SDK),122 个 Vitest 测试,push 到 main 自动跑 CI 并部署。

最后

它不适合想白嫖现成网站的人——它给你的是一套可以自己部署的干净方案:查 IP 不留痕、页面无第三方脚本、数据源挂了自动降级。受够了满屏广告的 IP 查询站的话,可以试试。

仓库地址:https://github.com/adream2/CFIP,觉得有用点个 Star。

×
喜欢这篇文章吗?
如果这篇文章对你有帮助,可以扫码打赏支持我一下。
微信
微信赞赏码
支付宝
支付宝赞赏码
×
长按保存图片,分享给朋友
文章海报
© 版权声明

相关文章