Documentația API de geolocalizare IP
API JSON gratuit pentru geolocalizare IP, ASN și date de risc. IPv4 și IPv6, HTTPS, CORS activat.
Pornire rapidă
Nu e nevoie de înregistrare pentru a-l încerca. Apelează endpointul de mai jos fără cheie pentru a obține datele propriului IP (limitat la 100 cereri pe zi).
curl https://iplookinfo.com/jsonAutentificare
Creează o cheie API gratuită în panou și trimite-o în antetul Authorization. Un parametru de interogare token funcționează și el pentru teste rapide, dar evită-l în producție, deoarece URL-urile ajung în jurnale.
Authorization: Bearer ipl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEndpointuri
- GET/api/v1/{ip}
- Caută orice adresă IPv4 sau IPv6.
- GET/api/v1/me
- Caută IP-ul apelantului. Disponibil și la /json.
- POST/api/v1/batch
- Caută până la 10.000 de IP-uri într-o singură cerere (planuri plătite). Fiecare IP contează ca o cerere.
Parametri de interogare
lang — Limba pentru numele de locuri: en, zh, es, pt, ru, ja. Implicit en.
Răspuns
Obiectul risk este inclus doar în planurile Pro și Business.
{
"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" }
}Limite de rată și erori
Fiecare răspuns conține antetele X-RateLimit-Limit, X-RateLimit-Remaining și X-RateLimit-Reset. Cotele se resetează la 00:00 UTC.
Erorile au o structură JSON consecventă, cu un cod de stare HTTP:
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
Depășire
Planurile plătite pot activa depășirea din panou. Cererile peste cota zilnică sunt atunci servite și facturate per 1.000, până la un plafon lunar de cheltuieli ales de tine. Aceste răspunsuri conțin antetul X-Overage-Units.
Exemple de cod
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)