واجهة برمجة تطبيقات مجانية لتحديد الموقع الجغرافي وفحص مخاطر الـ IP

واجهة برمجة تطبيقات مجانية لتحديد الموقع الجغرافي وفحص مخاطر الـ IP

واجهة استعلام عالية الأداء، تدعم بروتوكولي IPv4/IPv6 المزدوج ومتعددة اللغات، ومتاحة مجاناً. معدل الطلبات: طلب واحد في الثانية (1 req/s)، دون حد أقصى لإجمالي الاستدعاءات.

⏱️
حد معدل الطلبات الحد الأقصى طلب واحد في الثانية (1 req/s).
♾️
حصة الاستخدام الإجمالية لا توجد حدود يومية أو إجمالية للحصة. مجاني للاستخدام بنسبة 100%.

عناوين نقاط الاتصال (Endpoints)

GET https://api.myipdns.com/
IPv4 IPv6 تنسيق JSON
GET https://v4.api.myipdns.com/
IPv4 فقط تنسيق نص عادي
GET https://v6.api.myipdns.com/
IPv6 فقط تنسيق نص عادي

معلمات الطلب (Parameters)

اسم المعلمة الوصف مثال
ip عنوان الـ IP المراد الاستعلام عنه. إذا تم تركه فارغاً، سيتم إرجاع عنوان الـ IP الخاص بالمتصل. ?ip=8.8.8.8
lang لغة الاستجابة. اللغات المدعومة: en, cn, ru, ja, fr, de, es, pt. ?lang=zh-CN

مثال على استجابة JSON

Request: GET https://api.myipdns.com/?ip=8.8.8.8&lang=en

{
  "ip": "8.8.8.8",
  "continent": "North America",
  "continent_code": "NA",
  "country": "United States",
  "country_code": "US",
  "timezone": "America/Chicago",
  "latitude": 37.751,
  "longitude": -97.822,
  "asn": 15169,
  "as_org": "Google LLC",
  "native_type": "native",
  "rir_registry": "arin",
  "is_hosting": true,
  "usage_type": "DCH",
  "query_time": "0.03",
  "source": "maxmind.com"
}

واجهة فحص حزمة البروتوكولات والخصوصية للطرفية (/check)

نقطة اتصال عالية الدقة للفحص المباشر لحزمة البروتوكولات ومنفذ الخروج دون وسيط CDN، مصممة لأوامر curl و wget والسكربتات الآلية.

⚡
حصة معدل القراءة طلب واحد في الثانية (اندفاع حتى 5 طلبات) لكل IP. تجاوز الحد يرجع كود HTTP 429.
🔗
حصة إنشاء روابط المشاركة 5 عمليات كتابة في الساعة لكل IP. عند تجاوز الحد، يستمر إرجاع التشخيص الطبيعي بنجاح (HTTP 200) دون توليد رابط مشاركة.

عناوين نقاط الاتصال (Endpoints)

GET https://myipdns.com/check
Dual-Stack التنسيق الافتراضي (ألوان ANSI / نص الطرفية)
GET https://myipdns.com/check?format=line
Dual-Stack تنسيق أسطر (KEY=VALUE مخصص لمعالجة سكربتات Shell عبر awk / grep)
GET https://myipdns.com/check?format=json
Dual-Stack تنسيق JSON الهيكلي

معلمات الطلب (Parameters)

اسم المعلمة الوصف مثال
format تحديد تنسيق الإخراج: json (بيانات هيكلية) أو line (تنسيق KEY=VALUE) ?format=line / ?format=json
share إنشاء رابط تقرير للقراءة فقط لمدة 30 يوماً وشارة SVG (محمي بحصة 5 عمليات كتابة/ساعة/IP) ?share=1
color تعطيل رموز الألوان للطرفية (ANSI): ?color=0 أو ?plain=1 ?color=0 / ?plain=1
-4 / -6 تحديد فحص IPv4 أو IPv6 صراحة: curl -4 أو curl -6 curl -4 -sL https://myipdns.com/check

المواصفات الكاملة لحقول استجابة JSON

Field Type Description
ipstringعنوان IP لمنفذ خروج العميل
ip_versionstringإصدار بروتوكول IP (IPv4 أو IPv6) (IPv4 / IPv6)
countrystringاسم الدولة الكامل بعد تصويت ومطابقة المصادر المتعددة
country_codestringرمز الدولة المكون من حرفين كبيرين وفق معيار ISO 3166-1 alpha-2
citystring | nullاسم المدينة بالإنجليزية بعد المطابقة متعددة المصادر (أو null إذا لم تُقس)
asnstringرقم النظام المستقل (مثل AS15169)
as_orgstringاسم المؤسسة التابعة لـ ASN / مزود الخدمة
is_datacenterbooleanقيمة منطقية تشير إلى ما إذا كان IP ينتمي لمركز بيانات أو استضافة
is_proxybooleanقيمة منطقية تشير إلى ما إذا كان منفذ خروج لبروكسي تجاري أو VPN
transportobjectكائن بصمة طبقة النقل. 🔴 خط أحمر: جميع المقاييس غير المقاسة تكون قطيعاً null (ولا تعود أبداً 0 أو false)
transport.mssstringأقصى حجم مقطع تم رصده TCP MSS (مثل 1380، أو "n/a" عند الغياب)
transport.mtuinteger | nullوحدة الإرسال القصوى للمسار (MTU) المستنتجة من MSS (مثل 1420 لـ WireGuard، أو null)
transport.mtu_notestring | nullتوضيح استنتاجي لنوع رابط الشبكة بناءً على MTU (أو null)
transport.wscaleinteger | nullمعامل مقياس نافذة TCP WScale (أو null)
transport.syn_wininteger | nullحجم نافذة الاستقبال الأولية لحزمة SYN (أو null)
transport.syn_ttlinteger | nullزمن البقاء الأولي المقدر لحزمة SYN العميل TTL (أو null)
transport.option_orderstring | nullترتيب تفاوض خيارات TCP SYN مفصولة بفواصل (أو null)
transport.ts_valinteger | nullقيمة الطابع الزمني لـ TCP TSval (أو null)
transport.ts_hzinteger | nullدائماً null. لم يقم الخادم بقياس معدل ساعة الطابع الزمني على الإطلاق؛ يتم توضيح ما إذا كانت حزمة SYN تحمل طوابع زمنية لـ TCP بواسطة ts_val.
transport.ecn_enabledboolean | nullقيمة منطقية لحالة تفعيل إشعار الازدحام الصريح ECN (أو null)
cryptoobjectكائن بصمة طبقة التطبيقات والتشفير (إصدار HTTP، إصدار TLS، JA4، JA3، ALPN)
verdictobjectنتيجة تصنيف الطوبولوجيا، وأساس الاستنتاج، وملخص قابل للقراءة
share_urlstring (optional)رابط تقرير قابل للمشاركة لمدة 30 يوماً يُنشأ عند طلب ?share=1 ضمن الحصة المتاحة
badge_urlstring (optional)رابط شارة الحالة بصيغة SVG يُنشأ عند طلب ?share=1 ضمن الحصة المتاحة

تنسيق أسطر (KEY=VALUE مخصص لمعالجة سكربتات Shell عبر awk / grep) Example:

ip=35.212.190.31
ip_version=IPv4
country=United States
country_code=US
city=San Jose
asn=AS15169
as_org=Google LLC
is_datacenter=true
is_proxy=false
mss=1380
mtu=1420
mtu_note=Encapsulated Tunnel (WireGuard / Tailscale / CDN)
wscale=7
syn_win=65535
syn_ttl=64
option_order=MSS,SACK_PERM,TS,NOP,WS
ts_val=987654
ts_hz=n/a
ecn_enabled=true
http_proto=HTTP/2.0
tls_version=TLS 1.3
ja4=t13d1516h2_8daaf6152771_000000000000
verdict=topo_terminated_remote_protocol
verdict_basis=reputation
verdict_summary=Data Center / Proxy Egress (Hosting Network)

تنسيق JSON الهيكلي Example:

{
  "ip": "35.212.190.31",
  "ip_version": "IPv4",
  "country": "United States",
  "country_code": "US",
  "city": "San Jose",
  "asn": "AS15169",
  "as_org": "Google LLC",
  "is_datacenter": true,
  "is_proxy": false,
  "transport": {
    "mss": "1380",
    "mtu": 1420,
    "mtu_note": "Encapsulated Tunnel (WireGuard / Tailscale / CDN)",
    "wscale": 7,
    "syn_win": 65535,
    "syn_ttl": 64,
    "option_order": "MSS,SACK_PERM,TS,NOP,WS",
    "ts_val": 987654,
    "ts_hz": null,
    "ecn_enabled": true
  },
  "crypto": {
    "http_proto": "HTTP/2.0",
    "tls_version": "TLS 1.3",
    "ja4": "t13d1516h2_8daaf6152771_000000000000"
  },
  "verdict": {
    "key": "topo_terminated_remote_protocol",
    "basis": "reputation",
    "summary": "Data Center / Proxy Egress (Hosting Network)"
  }
}

واجهة سطر الأوامر السريعة (CLI / curl)

لا حاجة لدمج API معقد. نفّذ الأوامر مباشرة في الطرفية (Terminal) للحصول على بيانات الـ IP أو عنوان الـ IP كنص عادي. يقتصر طلب سطر الأوامر على طلب واحد في الثانية.

1. الحصول على بيانات JSON القياسية لعنوان خروج IP الخاص بجهازك:

curl https://myipdns.com

2. الحصول على بيانات JSON القياسية لعنوان IP محدد (مثل 8.8.8.8):

curl https://myipdns.com/ip/8.8.8.8

3. الحصول على نص عنوان الـ IP فقط (مثالي للاستخدام في سكربتات Shell):

curl https://myipdns.com/ip

البنية التقنية لواجهة API والأسئلة الشائعة

تعرف على فحص حزمة البروتوكولات في /check، وقواعد معالجة القيم الفارغة null، وأفضل ممارسات دمج السكربتات.

يصدر /check إعادة توجيه HTTP 302 مباشرة إلى نطاق المسبار المباشر مزدوج المكدس الخاص بنا (check_dns.myipdns.com). ومن خلال تجاوز البروكسيات العكسية وشبكات CDN، تفحص نواتنا مباشرة حزمة TCP SYN الواردة، وتلتقط قيم MTU الحقيقية، ومقياس النافذة (Window Scale)، وخيارات TCP.

لمنع التزييف وتضليل الأنظمة اللاحقة. في تحليل TCP، تعتبر قيمة MTU البالغة 0 غير صالحة، كما أن تعطيل ECN يختلف عن ECN غير المقاس (على سبيل المثال عند الاتصال عبر HTTP/3 QUIC). المعلمات غير المقاسة تُرجع دائماً null بشكل صارم.

نوصي باستخدام curl -sL 'https://myipdns.com/check?format=line' للحصول على تنسيق KEY=VALUE، واستخراج المقاييس مباشرة بأدوات مثل awk -F= '$1=="mtu"{print $2}' أو grep؛ كما يمكنك استخدام ?format=json مع أداة jq للاستعلامات الهيكلية.

طلبات القراءة العادية التي تتجاوز طلب واحد في الثانية (مع اندفاع حتى 5) تستلم استجابة HTTP 429 تتضمن ترويسة Retry-After. أما طلبات المشاركة (?share=1) التي تتجاوز حصة 5 مرات/ساعة، فيتم خفضها بسلاسة لتعود باستجابة HTTP 200 طبيعية مع استبعاد حقل share_url لضمان عدم توقف السكربتات البرمجية.

شكر وتقدير

نحن نستخدم واجهات برمجة التطبيقات التابعة لجهات خارجية التالية للمساعدة في التحقق من منافذ خروج الشبكة.