Skip to content

Latest commit

 

History

History
135 lines (98 loc) · 3.96 KB

File metadata and controls

135 lines (98 loc) · 3.96 KB

API 文档 · ipyou.net

无需注册、无需 API Key。 直接请求即可。 Base URL:https://ipyou.nethttp:// 也可,命令行客户端不会被强制跳转)

对外只有两个接口,够覆盖绝大多数需求:

接口 说明
GET / 你自己的 IP 信息
GET /<IP> 指定 IP 的信息

默认返回纯文本(终端里直接可读);加一个 Accept: application/json 头就返回 JSON


纯文本

命令行客户端(curl / wget / httpie 等)访问会自动返回纯文本;浏览器访问同样地址返回网页。

$ curl ipyou.net
IP      : 203.0.113.9
归属地  : 中国 广东省 广州市
运营商  : 电信
ASN     : AS4134 CHINANET BACKBONE (chinatelecom.com.cn)
类型    : 家庭宽带
风控值  : 15 (low)
经纬度  : 23.1291, 113.2644
场景    : TikTok ★★★★★  跨境电商 ★★★★★  社媒运营 ★★★★★  AI 应用 ★★★★★
$ curl ipyou.net/1.1.1.1
IP      : 1.1.1.1
归属地  : Australia Queensland Brisbane
运营商  : Cloudflare, Inc.
ASN     : AS13335 Cloudflare, Inc. (cloudflare.com)
类型    : 数据中心
风控值  : 55 (high)
rDNS    : one.one.one.one
经纬度  : -27.4675, 153.0281
场景    : TikTok ★☆☆☆☆  跨境电商 ★★☆☆☆  社媒运营 ★★☆☆☆  AI 应用 ★★★★★

JSON

同样两个地址,加 Accept: application/json

curl -H "Accept: application/json" ipyou.net              # 你自己的 IP
curl -H "Accept: application/json" ipyou.net/1.1.1.1      # 指定 IP

返回包含归属地、运营商、ASN、IP 类型、风控值、适用场景、黑名单状态等。 常用取值(需 jq):

API="curl -s -H Accept:application/json"

# 只要 IP
$API ipyou.net | jq -r '.ip'

# IP 类型
$API ipyou.net/1.1.1.1 | jq -r '.usage_inferred.label'

# 风控值 + 等级
$API ipyou.net/1.1.1.1 | jq -r '.ip_score | "\(.score) \(.level)"'

# 是否住宅 IP
$API ipyou.net/1.1.1.1 \
  | jq -r 'if (.usage_inferred.label // "") | test("家庭宽带|移动网络")
           then "residential" else "not-residential" end'

# 是否命中黑名单
$API ipyou.net/1.1.1.1 | jq -r '.blocklisted'

用任何 HTTP 库都一样 —— 只要带上 Accept: application/json,不必伪装 User-Agent。 字段可能随功能迭代增删,请按「字段存在才读」的方式写代码。需要长期稳定的输出就用纯文本。


查一批 IP?循环调用即可

没有批量接口 —— 单个接口足够快,循环调用就行,记得留点间隔:

while read -r ip; do
  curl -s "ipyou.net/$ip"
  sleep 1
done < ips.txt

导出 CSV(用本仓库的 batch-check.sh 更省事,已处理去重、限速与字段提取):

./scripts/batch-check.sh ips.txt > result.csv

限流与错误

有防滥用限流,正常使用完全够。循环调用请加间隔(建议每次 ≥1 秒),超限会返回 429,按响应头 Retry-After 稍后重试即可。

状态码 含义
200 成功
400 IP 格式非法
429 触发限流,稍后重试
5xx 服务端异常

错误响应:纯文本模式返回一行说明;JSON 模式返回 {"error":"invalid ip"}

带退避的调用示例:

for i in 1 2 3; do
  out=$(curl -s -w '\n%{http_code}' --max-time 10 "ipyou.net/$ip")
  code=$(echo "$out" | tail -1)
  [ "$code" = "200" ] && { echo "$out" | head -n -1; break; }
  sleep $((i * 5))
done

使用建议

  • 给请求设置超时(--max-time 10),不要在紧密循环里无节制调用。
  • 查自己的 IP 不走缓存,换网络 / 切代理立刻返回新结果;查指定 IP 的结果有缓存,重复查很快。
  • 若某项数据暂缺,接口仍返回 200、对应字段为空,不会整体失败 —— 写脚本时请判断字段是否存在。