תיעוד 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/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)