API ipcheckerpro
API JSON gratis tanpa kunci untuk geolokasi IP, data ASN, tanda, blocklist, WHOIS, dan record DNS. 60 permintaan per menit, CORS aktif, dengan contoh.
Endpoint
/api/v1/ipBatas laju: 60/minYour own address: location, network, type and flags (never cached).
curl -s https://ipcheckerpro.com/api/v1/ip/api/v1/ip/{ip}Batas laju: 60/minAny public IPv4/IPv6 address. Add whois=1 (RDAP record) and blacklists=1 (DNSBL checks, IPv4).
curl -s "https://ipcheckerpro.com/api/v1/ip/1.1.1.1?whois=1&blacklists=1"/api/v1/asn/{asn}Batas laju: 60/minAutonomous system details: name, country, type, prefix counts; whois=1 adds the registry record.
curl -s "https://ipcheckerpro.com/api/v1/asn/13335?whois=1"/api/v1/dns?name=&type=Batas laju: 30/minDNS records of a hostname (A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, PTR).
curl -s "https://ipcheckerpro.com/api/v1/dns?name=example.com&type=MX"/api/v1/bulkBaruBatas laju: 5/minUp to 100 addresses in one JSON array: country, city, ASN, type, Tor/hosting/DROP flags and risk score.
curl -s -X POST https://ipcheckerpro.com/api/v1/bulk -H "Content-Type: application/json" -d '["1.1.1.1","8.8.8.8"]'/api/v1/stats/liveBaruBatas laju: 60/minAnonymous aggregates: checks in the last 24 h, countries seen, top networks, dataset versions.
curl -s https://ipcheckerpro.com/api/v1/stats/liveDapatkan kunci API gratis
Endpoint tanpa kunci mengizinkan 60 permintaan per menit per IP. Kunci gratis menaikkannya menjadi 1.000 permintaan per hari dan 300 per menit, dihitung per kunci alih-alih per IP — cukup untuk aplikasi kecil, cron job, atau dasbor. Kunci dikirim ke email Anda dan ditampilkan sekali di bawah.
Kami menyimpan hash kunci dan email Anda agar Anda dapat meminta kami mencabutnya. Tanpa buletin.
Menggunakan kunci
Kirim kunci di header X-API-Key (disarankan) atau sebagai parameter kueri key pada endpoint /api/v1/ mana pun. Setiap respons membawa header X-RateLimit-Limit dan X-RateLimit-Remaining untuk kuota harian; GET /api/v1/key mengembalikan pemakaian hari ini untuk kunci yang diberikan.
Kuota
| Tanpa kunci | Dengan kunci gratis | |
|---|---|---|
| permintaan per menit per IP | 60 (DNS: 30) | — |
| permintaan per menit per kunci | — | 300 |
| permintaan per hari per kunci | — | 1,000 |
| POST /api/v1/bulk | 5 batches/min · 100 IPs | 5 batches/min · 100 IPs |
Contoh
curl -s -H "X-API-Key: YOUR_KEY" \
"https://ipcheckerpro.com/api/v1/ip/1.1.1.1?checks=native,risk"
# usage of the key
curl -s -H "X-API-Key: YOUR_KEY" https://ipcheckerpro.com/api/v1/keyconst res = await fetch('https://ipcheckerpro.com/api/v1/ip/1.1.1.1', {
headers: { 'X-API-Key': 'YOUR_KEY' }
});
const data = await res.json();
console.log(data.location.country, data.network.name, res.headers.get('X-RateLimit-Remaining'));import requests
r = requests.get('https://ipcheckerpro.com/api/v1/ip/1.1.1.1',
headers={'X-API-Key': 'YOUR_KEY'}, timeout=10)
r.raise_for_status()
data = r.json()
print(data['location']['country'], data['classification'], r.headers['X-RateLimit-Remaining'])$ctx = stream_context_create(['http' => ['header' => "X-API-Key: YOUR_KEY\r\n"]]);
$json = file_get_contents('https://ipcheckerpro.com/api/v1/ip/1.1.1.1', false, $ctx);
$data = json_decode($json, true);
echo $data['location']['country'], ' ', $data['network']['name'];Ikhtisar
Deskripsi yang dapat dibaca mesin: /api/v1/openapi.json (OpenAPI 3.1).
API mengembalikan data yang sama dengan situs web sebagai JSON: lokasi, jaringan, dan klasifikasi alamat IP apa pun, record registri di baliknya, status blocklist, detail ASN, dan record DNS. Tidak butuh kunci dan tidak butuh pendaftaran.
- URL dasar:
https://ipcheckerpro.com/api/v1 - Format: JSON, UTF-8, hanya
GET - Batas: 60 permintaan per menit per alamat IP untuk endpoint IP dan ASN, 30 per menit untuk endpoint DNS
- CORS: setiap respons membawa
Access-Control-Allow-Origin: *, sehingga browser bisa memanggilnya langsung - Atribusi: jika Anda menampilkan datanya, tampilkan "IP geolocation by DB-IP" dengan tautan ke db-ip.com (lihat Atribusi di bawah)
Endpoint
GET /api/v1/ip
Mengembalikan profil alamat pemanggil sendiri. Respons ditandai Cache-Control: private, no-store, sehingga selalu segar.
curl -s https://ipcheckerpro.com/api/v1/ip
GET /api/v1/ip/{ip}
Mengembalikan profil alamat IPv4 atau IPv6 publik apa pun. Parameter kueri opsional:
whois=1menambahkan objekwhoisdengan record registri yang diambil melalui RDAP.blacklists=1menjalankan delapan pemeriksaan DNS blocklist (hanya IPv4) dan mengisi objekblacklists.
Respons dapat di-cache selama 300 detik. Hasil blocklist di-cache di sisi kami selama satu jam dan record registri selama 24 jam.
curl -s "https://ipcheckerpro.com/api/v1/ip/1.1.1.1?whois=1&blacklists=1"
GET /api/v1/asn/{asn}
Mengembalikan detail sebuah sistem otonom. Nomor boleh diberikan dengan atau tanpa awalan AS. Tambahkan whois=1 untuk menyertakan record registri dalam objek registry. Respons dapat di-cache selama satu jam.
curl -s "https://ipcheckerpro.com/api/v1/asn/13335?whois=1"
GET /api/v1/dns?name=&type=
Mengembalikan record DNS sebuah nama host. type adalah salah satu dari A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA, atau PTR; default-nya A. Respons dapat di-cache selama 60 detik.
curl -s "https://ipcheckerpro.com/api/v1/dns?name=example.com&type=MX"
Bentuk respons
Permintaan IP yang berhasil mengembalikan objek dengan kolom-kolom berikut. Nilai yang tidak diketahui adalah null. Nilai di bawah hanya ilustrasi; jalankan permintaan untuk melihat data terkini sebuah alamat.
{
"ip": "1.1.1.1",
"version": 4,
"private": false,
"hostname": "one.one.one.one",
"location": {
"country_code": "AU",
"country": "Australia",
"region": "Queensland",
"city": "Brisbane",
"latitude": -27.4679,
"longitude": 153.028,
"timezone": "Australia/Brisbane",
"continent": "OC",
"eu": false
},
"network": {
"asn": 13335,
"name": "CLOUDFLARENET",
"prefix": "1.1.1.0/24",
"country_code": "US",
"type": "hosting"
},
"classification": "hosting",
"flags": {
"hosting": true,
"tor": false,
"vpn_provider": false,
"spamhaus_drop": null,
"datacenter": "Cloudflare",
"mobile": false
},
"blacklists": { "checked": 8, "listed": 0 },
"sources": {
"geolocation": "DB-IP Lite (CC BY 4.0)",
"asn": "iptoasn.com / DB-IP Lite"
}
}
Catatan kolom:
versionadalah4atau6.privatebernilaitrueuntuk rentang loopback, link-local, dan privat; alamat semacam itu tidak memilikilocationataunetwork.hostnameadalah record PTR (reverse DNS), ataunull.network.typeadalah klasifikasi jaringan yang diturunkan dari nama ASN dan daftar publik:isp,mobile,hosting,education,government,business, atauunknown.classificationadalah kesimpulan keseluruhan:residential,mobile,hosting,vpn,tor,education,government,business,private, atauunknown.flags.spamhaus_dropadalah rentang DROP yang cocok sebagai string, ataunull.flags.datacenteradalah nama penyedia yang cocok dari daftar pusat data, ataunull.blacklistsbernilainullkecualiblacklists=1diberikan.whois(denganwhois=1) berisihandle,name,type,start,end,cidr,country,parent,status,entities,events,remarks,links, danregistry.
Permintaan ASN mengembalikan asn, name, country_code, type, ipv4_prefixes, ipv4_addresses, ipv6_prefixes, prefixes_sample (hingga 20 string CIDR), registry (dengan whois=1, selain itu null), dan source.
Permintaan DNS mengembalikan name, type, dan records, sebuah array objek { "name", "ttl", "value" }.
Kesalahan
Kesalahan adalah objek JSON dengan kode error dan, biasanya, message:
| Status | error |
Arti |
|---|---|---|
| 400 | invalid_ip |
Segmen path bukan alamat IPv4 atau IPv6 yang valid |
| 400 | invalid_asn |
ASN bukan angka |
| 400 | invalid_query |
name bukan nama host atau type tidak didukung |
| 404 | not_found |
Tidak ada prefiks yang diumumkan yang diketahui untuk ASN itu |
| 429 | rate_limited |
Batas terlampaui; tunggu dan coba lagi |
Contoh
JavaScript (browser atau Node)
const res = await fetch("https://ipcheckerpro.com/api/v1/ip/8.8.8.8?whois=1");
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data.location.country, data.network.name, data.classification);
Python
import requests
r = requests.get("https://ipcheckerpro.com/api/v1/ip/8.8.8.8", params={"blacklists": 1}, timeout=10)
r.raise_for_status()
data = r.json()
print(data["location"]["country"], data["network"]["name"], data["blacklists"])
curl dengan alamat pemanggil sendiri
curl -s https://ipcheckerpro.com/api/v1/ip | jq '{ip, country: .location.country, type: .network.type}'
Atribusi
Data geolokasi berasal dari DB-IP Lite, berlisensi Creative Commons Attribution 4.0. Jika Anda menampilkan data dari API ini kepada pengguna, tampilkan teks "IP geolocation by DB-IP" dengan tautan ke https://db-ip.com di dekat data. Data ASN berasal dari iptoasn.com (domain publik) dan DB-IP Lite. Hasil blocklist dan registri milik operator masing-masing dan dikembalikan untuk penggunaan Anda sendiri, bukan untuk didistribusikan ulang sebagai set data.
Penggunaan wajar
Batas di atas berlaku per alamat IP pemanggil. Jika Anda butuh lebih, cache respons di sisi Anda; data lokasi dan jaringan sebuah alamat jarang berubah dalam sehari. Jangan gunakan API untuk membangun salinan basis data yang mendasarinya. Lihat ketentuan penggunaan untuk aturan lengkap penggunaan yang dapat diterima.
Perubahan
API diberi versi di path. Kolom dapat ditambahkan ke respons tanpa pemberitahuan; kolom yang ada tidak diganti nama atau dihapus dalam v1. Perubahan pada batas, endpoint, atau perilaku diumumkan di halaman ini sebelum berlaku.
