IP konum belirleme API belgeleri
IP konum belirleme, ASN ve risk verileri için ücretsiz JSON API. IPv4 ve IPv6, HTTPS, CORS etkin.
Hızlı başlangıç
Denemek için kayıt gerekmez. Kendi IP'nizin verilerini almak için aşağıdaki uç noktayı anahtarsız çağırın (günde 100 istekle sınırlı).
curl https://iplookinfo.com/jsonKimlik doğrulama
Panelde ücretsiz bir API anahtarı oluşturun ve Authorization başlığında gönderin. Hızlı testler için token sorgu parametresi de çalışır, ancak URL'ler günlüklere kaydedildiği için üretimde kullanmaktan kaçının.
Authorization: Bearer ipl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxUç noktalar
- GET/api/v1/{ip}
- Herhangi bir IPv4 veya IPv6 adresini sorgulayın.
- GET/api/v1/me
- Çağıranın kendi IP'sini sorgulayın. /json adresinde de kullanılabilir.
- POST/api/v1/batch
- Tek istekte 10.000'e kadar IP sorgulayın (ücretli planlar). Her IP bir istek sayılır.
Sorgu parametreleri
lang — Yer adlarının dili: en, zh, es, pt, ru, ja. Varsayılan en.
Yanıt
risk nesnesi yalnızca Pro ve Business planlarında bulunur.
{
"ip": "8.8.8.8",
"version": "IPv4",
"type": "unicast",
"bogon": false,
"network": "8.8.8.0/24",
"continent": { "code": "NA", "name": "North America" },
"country": { "code": "US", "name": "United States", "is_eu": false },
"region": null,
"city": null,
"postal": null,
"location": { "latitude": 37.751, "longitude": -97.822, "accuracy_radius_km": 1000, "time_zone": "America/Chicago" },
"asn": { "asn": 15169, "name": "Google LLC", "domain": "google.com", "route": "8.8.8.0/24" },
"isp": { "name": "Google", "organization": "Google", "is_mobile": false, "mobile_country_code": null, "mobile_network_code": null },
"risk": { "score": 60, "is_tor": false, "is_vpn": false, "is_datacenter": true, "provider": "Google Cloud" }
}Hız sınırları ve hatalar
Her yanıt X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset başlıklarını içerir. Kotalar 00:00 UTC'de sıfırlanır.
Hatalar, HTTP durum koduyla birlikte tutarlı bir JSON yapısı kullanır:
HTTP/1.1 429 Too Many Requests
{ "error": { "code": "quota_exceeded", "message": "..." } }- 400 invalid_ip / bad_request
- 401 invalid_key
- 403 plan_required
- 413 too_many
- 429 rate_limited / quota_exceeded
Aşım
Ücretli planlar panelden aşımı etkinleştirebilir. Bu durumda günlük kotayı aşan istekler de karşılanır ve seçtiğiniz aylık harcama üst sınırına kadar 1.000 istek başına faturalandırılır. Bu yanıtlar X-Overage-Units başlığını içerir.
Kod örnekleri
cURL
curl -H "Authorization: Bearer $IPLOOKINFO_KEY" https://iplookinfo.com/api/v1/8.8.8.8
# Batch (paid plans)
curl -X POST -H "Authorization: Bearer $IPLOOKINFO_KEY" \
-H "Content-Type: application/json" \
-d '{"ips":["8.8.8.8","1.1.1.1"]}' https://iplookinfo.com/api/v1/batchJavaScript
const res = await fetch("https://iplookinfo.com/api/v1/8.8.8.8", {
headers: { Authorization: `Bearer ${process.env.IPLOOKINFO_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error.message);
const data = await res.json();
console.log(data.country?.code, data.city);Python
import os, requests
r = requests.get(
"https://iplookinfo.com/api/v1/8.8.8.8",
headers={"Authorization": f"Bearer {os.environ['IPLOOKINFO_KEY']}"},
timeout=5,
)
r.raise_for_status()
data = r.json()
print(data["country"]["code"], data["asn"]["name"])PHP
$ctx = stream_context_create(["http" => [
"header" => "Authorization: Bearer " . getenv("IPLOOKINFO_KEY"),
]]);
$data = json_decode(file_get_contents("https://iplookinfo.com/api/v1/8.8.8.8", false, $ctx), true);
echo $data["country"]["code"];Go
req, _ := http.NewRequest("GET", "https://iplookinfo.com/api/v1/8.8.8.8", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("IPLOOKINFO_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil { log.Fatal(err) }
defer resp.Body.Close()
var data map[string]any
json.NewDecoder(resp.Body).Decode(&data)