GET
/
根路径。用 curl / wget / httpie 这类命令行客户端访问时,只回一行纯文本 IP,不夹 HTML;浏览器访问照常拿到完整界面。判断依据是 User-Agent 与 Accept,两边互不打扰。
203.0.113.42
API · No key required
不用申请 key、不用注册、没有调用配额。命令行访问根路径拿纯文本,/json 拿整份情报,/api/whoami 与它字段完全一致。数据全部由边缘节点直接从你的连接里读出,不经过第三方接口,服务端也不落库。
# 只要一个 IP(-L 跟过强制 HTTPS 的 301)
$ curl -L ip.fs.kg
203.0.113.42
# 完整情报,挑几个字段用
$ curl -sL ip.fs.kg/json | jq '{ip,country,city,asn,org}'
{ "ip": "203.0.113.42", "country": "CN", "city": "Xiamen", "asn": 4134, "org": "Chinanet" }
# 写进 shell 提示符
$ PS1="$(curl -sL ip.fs.kg) $ "
Windows PowerShell 请写 curl.exe:PS 里的 curl 是 Invoke-WebRequest 的别名,它会走 http 撞上强制 HTTPS,报 400 The plain HTTP request was sent to HTTPS port。
/
根路径。用 curl / wget / httpie 这类命令行客户端访问时,只回一行纯文本 IP,不夹 HTML;浏览器访问照常拿到完整界面。判断依据是 User-Agent 与 Accept,两边互不打扰。
203.0.113.42
/json
完整情报,application/json。加 ?pretty 会缩进两格,方便肉眼看;不加就是压缩过的单行,适合管道。存在的意义是比 /api/whoami 短,而且不落在 /api/ 下(robots.txt 里那一层是 Disallow 的)。
{
"ip": "203.0.113.42",
"type": "IPv4",
"asn": 4134,
"org": "Chinanet",
"city": "Xiamen",
"country": "CN",
"latitude": 24.4798,
"longitude": 118.0819,
"timezone": "Asia/Shanghai",
"colo": "HKG",
"tlsVersion": "TLSv1.3",
"edge": true
}
/api/whoami
与 /json 同一份实现、同一份字段,路径不一样只是因为首页脚本用它、并且能加时间戳绕开缓存。两个入口可以互换。
/api/contact
仅本站页面
联系页的留言转发接口,只接受本站页面的同源请求,第三方调用会拿到 403,所以这里不提供公开用法。写在这里只是为了让接口清单完整:请求体是 {name, email, message, page},成功返回 {"ok":true},被限流返回 429。
| 字段 | 类型 | 说明 |
|---|---|---|
| ip | string | 你的公网地址 |
| type | string | IPv4 或 IPv6,按地址里有没有冒号判断 |
| asn | number | 自治系统号,例如 4134 |
| org | string | 网络组织名。边缘侧 isp 与它同源,可能为 null |
| isp | string | 运营商名,与 org 取值相同 |
| city / region | string | 城市 / 省州,可能为 null |
| country | string | 两位国家码,例如 CN |
| country_code | string | 与 country 相同,兼容旧调用方 |
| continent | string | 大洲代码,例如 AS |
| latitude / longitude | string | 经纬度,城市级近似值。可能是数字字符串("24.47979"),调用方自己 parseFloat |
| postal | string | 邮政编码 |
| timezone | string | IANA 时区名,例如 Asia/Shanghai |
| isEu | boolean | 是否在欧盟境内 |
| colo | string | 处理这次请求的边缘节点三字码,例如 HKG |
| tlsVersion | string | 协商出的 TLS 版本,例如 TLSv1.3 |
| tlsCipher | string | 协商出的加密套件 |
| httpProtocol | string | HTTPS 或 HTTP |
| acceptLanguage | string | 请求头 Accept-Language 的第一个值 |
| edge | boolean | 恒为 true,标记数据来自边缘直读而非第三方接口 |
| ts | number | 毫秒时间戳,每次请求都不同,可用来绕开中间缓存 |
下面是这一页真的去请求 /api/whoami 拿回来的结果——文档里放一个能跑的例子,比贴一段静态假数据有用。你看到的字段值,就是你自己此刻的。
请求中 …