IPLookInfo

Τεκμηρίωση 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_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Endpoints

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/batch

JavaScript

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)