وثائق API لتحديد الموقع الجغرافي لعناوين IP
واجهة JSON API مجانية لتحديد الموقع الجغرافي لعناوين 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)