Τεκμηρίωση API γεωεντοπισμού IP
Δωρεάν JSON API για γεωεντοπισμό IP, ASN και δεδομένα κινδύνου. IPv4 και IPv6, HTTPS, με ενεργό CORS.
Γρήγορη εκκίνηση
Δεν χρειάζεται εγγραφή για να το δοκιμάσετε. Καλέστε το παρακάτω endpoint χωρίς κλειδί για να λάβετε δεδομένα για τη δική σας IP (έως 100 αιτήματα την ημέρα).
curl https://iplookinfo.com/jsonΑυθεντικοποίηση
Δημιουργήστε ένα δωρεάν κλειδί API στον πίνακα ελέγχου και στείλτε το στην κεφαλίδα Authorization. Η παράμετρος ερωτήματος token λειτουργεί επίσης για γρήγορες δοκιμές, αλλά αποφύγετέ τη στην παραγωγή, γιατί τα URL καταλήγουν σε αρχεία καταγραφής.
Authorization: Bearer ipl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxEndpoints
- GET/api/v1/{ip}
- Αναζήτηση οποιασδήποτε διεύθυνσης IPv4 ή IPv6.
- GET/api/v1/me
- Αναζήτηση της IP του καλούντος. Διαθέσιμο και στο /json.
- POST/api/v1/batch
- Αναζήτηση έως 10.000 IP σε ένα αίτημα (προγράμματα επί πληρωμή). Κάθε IP μετρά ως ένα αίτημα.
Παράμετροι ερωτήματος
lang — Γλώσσα για ονόματα τοποθεσιών: en, zh, es, pt, ru, ja. Προεπιλογή en.
Απόκριση
Το αντικείμενο risk περιλαμβάνεται μόνο στα προγράμματα Pro και 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" }
}Όρια ρυθμού και σφάλματα
Κάθε απόκριση περιέχει τις κεφαλίδες X-RateLimit-Limit, X-RateLimit-Remaining και X-RateLimit-Reset. Τα όρια μηδενίζονται στις 00:00 UTC.
Τα σφάλματα έχουν σταθερή δομή JSON με κωδικό κατάστασης 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
Υπέρβαση
Τα προγράμματα επί πληρωμή μπορούν να ενεργοποιήσουν την υπέρβαση στον πίνακα ελέγχου. Τότε τα αιτήματα πέρα από το ημερήσιο όριο εξυπηρετούνται και χρεώνονται ανά 1.000, έως ένα μηνιαίο όριο δαπανών που επιλέγετε. Αυτές οι αποκρίσεις περιέχουν την κεφαλίδα X-Overage-Units.
Παραδείγματα κώδικα
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)