Dokumentation för IP-geolokaliserings-API
Gratis JSON-API för IP-geolokalisering, ASN och riskdata. IPv4 och IPv6, HTTPS, CORS aktiverat.
Snabbstart
Ingen registrering behövs för att testa. Anropa endpointen nedan utan nyckel för att få data om din egen IP (begränsat till 100 förfrågningar per dag).
curl https://iplookinfo.com/jsonAutentisering
Skapa en gratis API-nyckel i kontrollpanelen och skicka den i Authorization-headern. En token-parameter i frågesträngen fungerar också för snabba tester, men undvik den i produktion eftersom URL:er hamnar i loggar.
Authorization: Bearer ipl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEndpoints
- GET/api/v1/{ip}
- Slå upp valfri IPv4- eller IPv6-adress.
- GET/api/v1/me
- Slå upp anroparens egen IP. Finns även på /json.
- POST/api/v1/batch
- Slå upp upp till 10 000 IP-adresser i en förfrågan (betalda planer). Varje IP räknas som en förfrågan.
Frågeparametrar
lang — Språk för ortnamn: en, zh, es, pt, ru, ja. Standard är en.
Svar
Objektet risk ingår bara i planerna Pro och 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" }
}Begränsningar och fel
Varje svar innehåller headers X-RateLimit-Limit, X-RateLimit-Remaining och X-RateLimit-Reset. Kvoterna nollställs kl. 00:00 UTC.
Fel har en enhetlig JSON-struktur med en HTTP-statuskod:
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
Överförbrukning
Betalda planer kan aktivera överförbrukning i kontrollpanelen. Förfrågningar utöver den dagliga kvoten hanteras då och debiteras per 1 000, upp till ett månatligt utgiftstak som du väljer. Sådana svar innehåller headern X-Overage-Units.
Kodexempel
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)