IPLookInfo

תיעוד API לאיתור מיקום IP

API חינמי ב-JSON לאיתור מיקום IP, ASN ונתוני סיכון. IPv4 ו-IPv6, HTTPS, עם תמיכה ב-CORS.

התחלה מהירה

אין צורך בהרשמה כדי לנסות. קראו לנקודת הקצה שלמטה ללא מפתח כדי לקבל נתונים על ה-IP שלכם (מוגבל ל-100 בקשות ליום).

curl https://iplookinfo.com/json

אימות

צרו מפתח API חינמי בלוח הבקרה ושלחו אותו בכותרת Authorization. פרמטר השאילתה token עובד גם הוא לבדיקות מהירות, אך הימנעו ממנו בסביבת ייצור כי כתובות URL נשמרות ביומנים.

Authorization: Bearer ipl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

נקודות קצה

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)