本帖最后由 pandada1987 于 2026-1-19 13:43 编辑
有些信息你其实每天都在用——比如“当前出口 IP 是多少”“这台机器现在算不算跑到了奇怪的国家/地区”“告警里的可疑 IP 来自哪里”。但要把这些信息优雅地展示出来,往往要写一堆前端、做接口、处理跨域、再搞一套 UI。 IPin.io 的「IP 徽章(IP Badge)」思路很简单也很聪明:它不返回 JSON,而是直接返回一张可嵌入的 SVG 徽章图片(Content-Type: image/svg+xml),你把它当图片插到任何支持 <img> 的地方就完事儿了。
https://ipin.io/zh/ip_badge
工具展示
它到底能干嘛?IP 徽章可以把: - 访问者 IP(或你指定的 IP)
- 对应的 国家简称 country_code(US/TW/JP 这种)
- 可选的 国家名称 country_name(支持多语言)
渲染成类似 shields.io 风格的两段式徽章:左边通常是 IP,右边是国家信息;并且能用路由段控制语言与颜色。 更贴心的是:它会尝试从常见代理头(例如 Cloudflare、X-Forwarded-For)里解析真实客户端 IP,适合放在 CDN/反代/负载均衡之后。 3 分钟上手:复制就能用你只需要在网页或文档里插一行图片。 1)只显示“当前访问者 IP”(最干净)
<img src="https://s.ipin.io/myip" alt="我的IP" />
2)显示“访问者 IP + 国家简称”
<img src="https://s.ipin.io/check-ip" alt="IP + 国家简称" />
3)查“指定 IP”(适合工单/告警里挂标签)
<img src="https://s.ipin.io/check-8.8.8.8" alt="8.8.8.8 + 国家简称" />
4)显示中文国家名(加 -zh)
https://s.ipin.io/check-ip-zh
我最喜欢的部分:颜色 = 状态语义它支持两种配色方式: - 颜色 token:-blue/-green/-red/...
- hex 色值:-ff0000(不带 #)
比如把“高风险 IP”做成红色徽章,值班同学一眼就懂: <img src="https://s.ipin.io/check-8.8.8.8-red" alt="高风险 IP(红)" />
或者中文 + 绿色(白名单语义): <img src="https://s.ipin.io/check-8.8.8.8-zh-green" alt="白名单(绿)" />
适合哪些场景?官方给的定位很“展示向”,我也觉得它最强在这: - 运维状态页 / 监控大屏:把多节点出口 IP/国家做成“徽章墙”,哪台机器跑偏了一眼就看出来;同时建议给页面做较长缓存(如 1 小时),降低查询压力、提升加载速度。
- 安全告警 / 工单系统:把告警 IP 直接贴成红/黄/绿徽章,省去打开详情页的步骤。
- CDN/反代链路排查:访问 /myip、/check-ip 快速确认真实 IP 是否透传、是否被错误覆盖。
- 多语言后台 / 国际化 SaaS:用 -zh/-en/-ja 让同一 IP 在不同语言界面显示不同国家名,减少前端字典维护。
两个“别踩坑”的提醒1)如果你把徽章放到 GitHub README:它可能不是“访问者的 IP”GitHub 会用 Camo 把外链图片做成“匿名代理 URL”,用来隐藏浏览器相关信息并做缓存。
这意味着徽章服务端看到的请求,往往来自 GitHub 的代理;而且也不可能对不同访问者返回不同内容(因为都走同一个代理层)。 结论:想在 GitHub README 里“展示每个读者自己的 IP/国家”,大概率行不通;但用于展示“某个固定 IP / 某个节点出口”(你指定 IP 的那类)仍然很实用。 2)对公网开放时,记得做“可信代理头”策略如果你后面有反代/CDN,最好在反代或应用层限制哪些上游才允许写 X-Forwarded-For 之类头部,避免被伪造导致展示错误。 总结一句如果你需要把 IP 信息做成“随处可嵌入、零前端、能上色、能多语言”的可视化组件,IPin.io 的 IP 徽章属于那种“复制一行就开始爽”的小工具。 如果你告诉我你准备放在哪(GitHub README / 内网监控页 / 工单系统 / 博客侧边栏),我可以顺手帮你把“最合适的路由 + 颜色语义 + 缓存策略”配一套成品。 |