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