كاشف إصدار عنوان IP
تتحقق أداة تحديد إصدار عنوان IP هذه مما إذا كانت السلسلة عنوان IPv4 كاملا، أو عنوان IPv6 كاملا، أو لا تنتمي إلى أي منهما.
شغّل الأداة مجانًا
يعيد الإدخال الصحيح الإصدار المكتشف وتمثيلا معياريا ثابتا يسهل مقارنته وحفظه ومراجعته. أما النص غير الصحيح فيعيد سببا محددا، مثل تجاوز مقطع IPv4 للنطاق، أو وجود صفر بادئ غير مسموح، أو زيادة مجموعات IPv6، أو خطأ في الاختصار بعلامتي النقطتين. يعمل المحلل بصورة حتمية، ولا يتصل بالشبكة، ويطبق قواعد صارمة بدلا من تخمين المقصود من إدخال ناقص أو مرفق بعناصر إضافية.
حددوا صياغة IPv4 وIPv6 بدقة
يمثل IPv4 وIPv6 العناوين بصيغ نصية شديدة الاختلاف، ولذلك لا يكفي البحث عن نقطة أو علامتي نقطتين للتحقق من صحة أي منهما. تحلل هذه الأداة السلسلة كاملة وفقا للقواعد البنيوية للإصدارين. يجب أن يتكون IPv4 من أربعة مقاطع عشرية بالضبط تفصل بينها نقاط. ويجب أن تتراوح قيمة كل مقطع بين 0 و255، وأن يحتوي على أرقام فقط، وألا يبدأ بصفر. يستخدم IPv6 ثماني مجموعات ست عشرية تفصل بينها علامتا نقطتين، ويمكنه اختصار سلسلة واحدة من المجموعات الصفرية بعلامتي نقطتين مزدوجتين. كما يمكن أن ينتهي عنوان IPv6 بعنوان IPv4 عشري مضمن ما دام العدد الإجمالي للمجموعات صحيحا. لا تصنف النتيجة القيمة على أنها IPv4 أو IPv6 إلا بعد اجتياز النص الكامل للتحقق. أما القيمة التي تشبه عنوانا فقط فتصنف على أنها لا تنتمي إلى أي منهما، ويعاد معها سبب يحدد القاعدة التي خولفت. بذلك يمكنكم استخدام النتيجة للتحقق من النماذج، ومراجعة الإعدادات، وتنظيف البيانات المستوردة، والاختبارات الآلية من دون أن يؤدي التخمين المتساهل إلى قبول بيانات غير صحيحة.
استخدموا المخرجات المعيارية للمقارنة والتخزين
قد تكون لعنوان IP الصحيح أكثر من كتابة نصية، ولا سيما في IPv6. فالأحرف الست عشرية الكبيرة والصغيرة تمثل القيم نفسها، والأصفار البادئة داخل المجموعة لا تغير العنوان، ويمكن ضغط سلسلة من المجموعات الصفرية. تستخدم نتيجة IPv6 المعيارية أحرفا صغيرة، وتحذف الأصفار البادئة غير اللازمة، وتضغط أطول سلسلة تتكون من مجموعتين صفريتين أو أكثر. وإذا تساوت عدة سلاسل في الطول، تضغط السلسلة الأولى. تحول مكونات IPv4 العشرية المضمنة إلى مجموعاتها الست عشرية المكافئة، كي تأتي الاستجابة دائما بصيغة IPv6 واحدة ومتسقة. ويعاد IPv4 في صورة أربعة مقاطع عشرية عادية. تتيح هذه القواعد للأنظمة مقارنة السلاسل المعيارية من دون اعتبار كتابتين للعنوان نفسه نقطتي اتصال مختلفتين. كما تفيد في إعداد السجلات، وإزالة التكرار من الإعدادات، وإنشاء لقطات الاختبار، وعرض العنوان للمراجعة البشرية. لا تجري عملية التوحيد استعلام DNS، ولا تحدد الموقع الجغرافي، ولا تحلل الشبكة الفرعية، ولا تختبر إمكانية الوصول؛ فهي تغير طريقة العرض فقط ولا تغير القيمة الرقمية للعنوان.
افهموا أسباب الرفض وحدود الإدخال الصارمة
عندما يكون نص العنوان غير صحيح، تصنفه الاستجابة على أنه لا ينتمي إلى أي من الإصدارين وتوضح سبب رفضه. تشمل أخطاء IPv4 الشائعة نقص أحد المقاطع، أو قيمة تزيد على 255، أو أحرفا غير عشرية، أو صفرا بادئا قد تفسره البرامج القديمة بطريقة مختلفة. وتشمل أخطاء IPv6 مجموعة أطول من أربعة أرقام ست عشرية، أو عددا خاطئا من المجموعات بعد التوسيع، أو أكثر من علامة نقطتين مزدوجتين، أو اختصارا لا يستبدل أي مجموعة. لا تدخل الأقواس المستخدمة في عناوين URL، وأطوال بادئة CIDR، وأرقام المنافذ، ومعرفات النطاق ضمن عقد الإدخال عمدا. أزيلوا هذه الإضافات وأرسلوا العنوان وحده. يحافظ هذا الحد الصارم على نتيجة متوقعة بين المتصفحات والخوادم ولغات البرمجة التي قد تقبل محللاتها صيغاً تاريخية مختلفة. يعد غياب العنوان أو كونه من نوع غير نصي خطأ في عقد الطلب، أما السلسلة ذات الصياغة غير الصحيحة فهي نتيجة كشف عادية مرفقة بسبب الرفض. لا تستخدم الخوارزمية شبكة أو حالة خارجية، ولذلك تتطابق الطلبات المتكررة دائما. تبلغ تكلفة طلب API الواحد $0.002، ويمكن تشغيل نسخة المتصفح محليا.
حالات الاستخدام
التحقق من مدخلات الإعداد
ارفضوا عناوين المضيف غير الصحيحة قبل وصولها إلى قواعد جدار الحماية أو إعدادات الخدمات أو قوالب النشر.
توحيد سجل العناوين
حولوا كتابات IPv6 المتكافئة إلى تمثيل معياري قبل مقارنة السجلات أو إزالة المكرر منها.
توضيح أخطاء النماذج
اعرضوا سببا نحويا مفيدا عندما يدخل المستخدم قيمة ليست عنوان IPv4 أو IPv6 كاملا.
الأسئلة الشائعة
هل تتصل الأداة بالعنوان؟
لا. تتحقق من النص وتنسقه محليا من دون DNS أو فحص الشبكة أو تحديد الموقع الجغرافي أو الاستعلام عن السمعة.
هل تقبل الأداة بادئات CIDR؟
لا. أرسلوا العنوان وحده. فاللاحقة مثل /24 أو /64 هي صيغة لبادئة شبكة ولا تدخل ضمن عقد هذه الأداة.
لماذا ترفض مقاطع IPv4 التي تبدأ بصفر؟
سببت الأصفار البادئة تاريخيا التباسا بين التفسير العشري والثماني. وتمنع الصيغة العشرية الصارمة اختلاف التفسير.
كيف يوحد عنوان IPv6 إلى الصيغة المعيارية؟
تحول الأحرف الست عشرية إلى أحرف صغيرة، وتحذف الأصفار البادئة في المجموعات، وتضغط أطول سلسلة صفرية مؤهلة بعلامتي نقطتين مزدوجتين.
هل يمكن إرسال URL من نوع IPv6 بين قوسين ومع منفذ؟
لا. أزيلوا القوسين والمنفذ أولا، لأنهما من صياغة URL أو نقطة الاتصال وليسا جزءا من عنوان IP نفسه.
ما تكلفة طلب API؟
تبلغ تكلفة كل طلب API مقدار $0.002. ويمكن أيضا تشغيل أداة المتصفح الحتمية محليا على الصفحة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/ip-version-detect \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"address":"2001:0db8:0000:0000:0000:ff00:0042:8329"}'const res = await fetch("https://api.kit.forhosting.com/dev/ip-version-detect", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"address": "2001:0db8:0000:0000:0000:ff00:0042:8329"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/ip-version-detect",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"address": "2001:0db8:0000:0000:0000:ff00:0042:8329"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/ip-version-detect", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"address":"2001:0db8:0000:0000:0000:ff00:0042:8329"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"address":"2001:0db8:0000:0000:0000:ff00:0042:8329"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/ip-version-detect", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"address": "2001:0db8:0000:0000:0000:ff00:0042:8329"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.ip_version_detect",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |