ip.fs.kg 回到查询台

API · No key required

一个站点,三个接口。

不用申请 key、不用注册、没有调用配额。命令行访问根路径拿纯文本,/json 拿整份情报,/api/whoami 与它字段完全一致。数据全部由边缘节点直接从你的连接里读出,不经过第三方接口,服务端也不落库。

快速开始

三行就能接进脚本
bash — 复制即用
# 只要一个 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。

接口清单

全部 GET,全部免鉴权
GET /

根路径。用 curl / wget / httpie 这类命令行客户端访问时,只回一行纯文本 IP,不夹 HTML;浏览器访问照常拿到完整界面。判断依据是 User-Agent 与 Accept,两边互不打扰。

响应 · text/plain
203.0.113.42
GET /json

完整情报,application/json。加 ?pretty 会缩进两格,方便肉眼看;不加就是压缩过的单行,适合管道。存在的意义是比 /api/whoami 短,而且不落在 /api/ 下(robots.txt 里那一层是 Disallow 的)。

响应 · application/json
{
  "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
}
GET /api/whoami

与 /json 同一份实现、同一份字段,路径不一样只是因为首页脚本用它、并且能加时间戳绕开缓存。两个入口可以互换。

POST /api/contact 仅本站页面

联系页的留言转发接口,只接受本站页面的同源请求,第三方调用会拿到 403,所以这里不提供公开用法。写在这里只是为了让接口清单完整:请求体是 {name, email, message, page},成功返回 {"ok":true},被限流返回 429。

响应字段

/json 与 /api/whoami 通用
字段类型说明
ipstring你的公网地址
typestringIPv4 或 IPv6,按地址里有没有冒号判断
asnnumber自治系统号,例如 4134
orgstring网络组织名。边缘侧 isp 与它同源,可能为 null
ispstring运营商名,与 org 取值相同
city / regionstring城市 / 省州,可能为 null
countrystring两位国家码,例如 CN
country_codestring与 country 相同,兼容旧调用方
continentstring大洲代码,例如 AS
latitude / longitudestring经纬度,城市级近似值。可能是数字字符串("24.47979"),调用方自己 parseFloat
postalstring邮政编码
timezonestringIANA 时区名,例如 Asia/Shanghai
isEuboolean是否在欧盟境内
colostring处理这次请求的边缘节点三字码,例如 HKG
tlsVersionstring协商出的 TLS 版本,例如 TLSv1.3
tlsCipherstring协商出的加密套件
httpProtocolstringHTTPS 或 HTTP
acceptLanguagestring请求头 Accept-Language 的第一个值
edgeboolean恒为 true,标记数据来自边缘直读而非第三方接口
tsnumber毫秒时间戳,每次请求都不同,可用来绕开中间缓存

实时响应

下面是这一页真的去请求 /api/whoami 拿回来的结果——文档里放一个能跑的例子,比贴一段静态假数据有用。你看到的字段值,就是你自己此刻的。

GET /api/whoami
请求中 …

需要注意的地方