名称: ipinfo
描述: 使用 ipinfo.io API 执行 IP 地理位置查询。将 IP 地址转换为包含城市、地区、国家、邮政编码、时区和坐标的地理数据。适用于 IP 地理定位、丰富 IP 数据或分析地理分布。
主页: https://ipinfo.io
元数据:
{ "openclaw": { "emoji": "🌍", "requires": { "bins": ["curl"] }, "primaryEnv": "IPINFO_TOKEN" } }
免费的 IP 地理位置 API。基础使用(每月 5 万次请求)无需 API 密钥,如需更高限制可提供令牌。
IPINFO_TOKEN 环境变量是可选的——该技能在免费层级下无需令牌即可工作。如需更高的速率限制,可通过 OpenClaw 仪表盘 UI 进行配置,或手动设置:
IPINFO_TOKEN(可选)export IPINFO_TOKEN="your-token"?token=YOUR_TOKEN(用于一次性请求)查询单个 IP:
curl -s "https://ipinfo.io/8.8.8.8"
查询当前 IP:
curl -s "https://ipinfo.io/json"
使用令牌(可选,从环境变量读取):
curl -s "https://ipinfo.io/8.8.8.8?token=${IPINFO_TOKEN}"
或直接传递令牌:
curl -s "https://ipinfo.io/8.8.8.8?token=YOUR_TOKEN"
JSON 响应包含:
ip:IP 地址hostname:反向 DNS 主机名city:城市名称region:州/地区country:两位国家代码(ISO 3166-1 alpha-2)postal:邮政编码timezone:IANA 时区loc:坐标,格式为 "纬度,经度"org:组织/ASN 信息使用 jq:
curl -s "https://ipinfo.io/8.8.8.8" | jq -r '.city, .country, .loc'
仅提取国家:
curl -s "https://ipinfo.io/8.8.8.8" | jq -r '.country'
解析坐标:
curl -s "https://ipinfo.io/8.8.8.8" | jq -r '.loc' | tr ',' '\n'
处理多个 IP:
for ip in 8.8.8.8 1.1.1.1 208.67.222.222; do
if [ -n "$IPINFO_TOKEN" ]; then
echo "$ip: $(curl -s "https://ipinfo.io/$ip?token=$IPINFO_TOKEN" | jq -r '.city, .country' | tr '\n' ', ')"
else
echo "$ip: $(curl -s "https://ipinfo.io/$ip" | jq -r '.city, .country' | tr '\n' ', ')"
fi
done
import os
import requests
# 无令牌(免费层级)
response = requests.get("https://ipinfo.io/8.8.8.8")
data = response.json()
print(f"{data['city']}, {data['country']}")
print(f"坐标: {data['loc']}")
从环境变量读取令牌:
import os
import requests
token = os.getenv("IPINFO_TOKEN")
if token:
response = requests.get("https://ipinfo.io/8.8.8.8", params={"token": token})
else:
response = requests.get("https://ipinfo.io/8.8.8.8")
data = response.json()
或直接传递令牌:
response = requests.get("https://ipinfo.io/8.8.8.8", params={"token": "YOUR_TOKEN"})
IPINFO_TOKEN