API 文档
IPv4.DEV 提供强大的 IP 情报 API,支持 IP 地理位置查询、ASN 信息、风险评分等功能。
API 基础地址:
https://api.ipv4.dev/v1
认证方式
所有 API 请求都需要在 Header 中携带 API Key 进行认证。
curl -X GET "https://api.ipv4.dev/v1/ip/8.8.8.8" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
安全提示:请勿在客户端代码中暴露您的 API Key。
速率限制
API 请求受到速率限制,具体限制取决于您的订阅套餐:
| 套餐 | 每秒请求 | 每日请求 | 每月请求 |
|---|---|---|---|
| 免费版 | 5 | 1,000 | 30,000 |
| 基础版 | 20 | 10,000 | 300,000 |
| 专业版 | 50 | 100,000 | 3,000,000 |
| 企业版 | 200 | 无限制 | 无限制 |
响应头会包含当前速率限制状态:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640000000
API 端点
GET IP 查询
查询单个 IP 地址的地理位置和相关信息。
GET /v1/ip/{ip_address}
参数
| 参数 | 类型 | 说明 |
|---|---|---|
| ip_address | string | IPv4 或 IPv6 地址 |
响应示例
{
"success": true,
"data": {
"ip": "8.8.8.8",
"asn": 15169,
"as_name": "GOOGLE",
"country": "US",
"country_name": "United States",
"region": "California",
"city": "Mountain View",
"isp": "Google LLC",
"organization": "Google Public DNS",
"network_type": "dc",
"is_datacenter": true,
"is_vpn": false,
"is_proxy": false,
"risk_score": 10,
"latitude": 37.386,
"longitude": -122.0838,
"timezone": "America/Los_Angeles"
}
}
POST 批量查询
一次查询多个 IP 地址(最多 100 个)。
POST /v1/ip/batch
请求体
{
"ips": ["8.8.8.8", "1.1.1.1", "208.67.222.222"]
}
响应示例
{
"success": true,
"data": {
"8.8.8.8": { "asn": 15169, "country": "US", ... },
"1.1.1.1": { "asn": 13335, "country": "AU", ... },
"208.67.222.222": { "asn": 36692, "country": "US", ... }
}
}
GET ASN 查询
查询 ASN(自治系统号)的详细信息。
GET /v1/asn/{asn_number}
响应示例
{
"success": true,
"data": {
"asn": 15169,
"as_name": "GOOGLE",
"description": "Google LLC",
"country": "US",
"rir": "ARIN",
"total_prefixes": 1532,
"total_ips": 15678432,
"website": "https://google.com",
"abuse_email": "[email protected]"
}
}
响应代码
| 状态码 | 说明 |
|---|---|
| 200 | 请求成功 |
| 400 | 请求参数错误 |
| 401 | 认证失败,API Key 无效 |
| 403 | 权限不足 |
| 404 | 资源不存在 |
| 429 | 请求过于频繁,超出速率限制 |
| 500 | 服务器内部错误 |
代码示例
cURL
curl -X GET "https://api.ipv4.dev/v1/ip/8.8.8.8" \
-H "Authorization: Bearer YOUR_API_KEY"
Python
import requests
url = "https://api.ipv4.dev/v1/ip/8.8.8.8"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
response = requests.get(url, headers=headers)
data = response.json()
print(data)
JavaScript (Node.js)
const axios = require('axios');
axios.get('https://api.ipv4.dev/v1/ip/8.8.8.8', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
})
.then(response => console.log(response.data))
.catch(error => console.error(error));
PHP
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://api.ipv4.dev/v1/ip/8.8.8.8",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOUR_API_KEY"
]
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
print_r($data);