HackMyIP

批量IP查询

单次请求批量查询最多50个IP — 免费地理位置和ISP,无需密钥

需要一次性获取一批IP的地理位置和ISP数据?HackMyIP的批量端点单次POST最多接受50个IP,并为每个IP返回一条结果——免费、无需密钥、无需注册。它比50次顺序调用更快,也更省速率配额。如果你更想在浏览器里粘贴列表,还有交互式 批量查询工具。完整参考见 API文档

POST /api/bulk

发送包含 "ips" 数组的JSON正文(最多50个):

curl -X POST -H "Content-Type: application/json" \
  -d '{"ips":["8.8.8.8","1.1.1.1","208.67.222.222"]}' \
  https://hackmyip.com/api/bulk

响应——每个IP一行,包含国家、城市、ISP、组织和坐标:

{
  "success": true,
  "data": {
    "total": 3,
    "results": [
      { "ip": "8.8.8.8", "country": "US", "city": "...",
        "isp": "Google LLC", "org": "...", "lat": 0, "lon": 0 },
      { "ip": "1.1.1.1", "country": "...", "city": "...",
        "isp": "...", "org": "...", "lat": 0, "lon": 0 }
    ]
  }
}

无效或无法解析的条目会以 { "ip": "...", "error": "invalid format" } 返回,因此单个坏IP不会让整批失败。

代码示例

JavaScript (fetch)

const res = await fetch('https://hackmyip.com/api/bulk', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ ips: ['8.8.8.8', '1.1.1.1', '9.9.9.9'] })
});
const { data } = await res.json();
data.results.forEach(r => console.log(r.ip, r.country, r.isp));

Python (requests)

import requests

ips = ['8.8.8.8', '1.1.1.1', '208.67.222.222']
r = requests.post('https://hackmyip.com/api/bulk', json={'ips': ips})
for row in r.json()['data']['results']:
    print(row['ip'], row.get('country'), row.get('isp'))

查询超过50个IP

批量端点每次请求上限为50个IP。对于更大的列表,可将其分成每批50个,或当你需要更丰富的单IP字段(如数字ASN)时循环调用单IP的 /api/lookup 端点。请保持在每分钟60次请求以内:

import requests, time

ips = [ ... ]  # any number of IPs
for ip in ips:
    r = requests.get('https://hackmyip.com/api/lookup', params={'ip': ip})
    d = r.json()['data']
    print(ip, d['network']['asn'], d['network']['isp'])
    time.sleep(1)  # stay under 60 requests/minute

常见问题

有免费的批量IP查询API吗?

有。HackMyIP的 POST /api/bulk 每次请求接受最多50个IP的JSON数组,并为每个IP返回地理位置和ISP——无需密钥、无需注册。超过50个IP时,可分多批发送或循环调用单IP的 /api/lookup 端点。

批量IP WHOIS 怎么办?

HackMyIP不提供批量WHOIS端点。要查询网络归属,可对每个IP使用单IP的 /api/lookup(返回ASN、ISP和组织)或 /api/asn?q={ip}。/api/whois 端点用于域名RDAP,而非IP WHOIS。请在你的列表上循环调用这些端点,并遵守每分钟60次请求的限制。

我一次可以查询多少个IP?

每次 POST /api/bulk 请求最多50个IP。该端点将数组上限设为50并并行查询,因此一次批量比50次顺序调用快得多。更大的列表请分多批发送。

批量查询工具 完整API文档 单IP查询