أمر ping في موجه الأوامر لعدة أجهزة في نفس الوقت

مقدمة حول أمر ping واستخدامه مع أجهزة متعددة

يُعد أمر ping من الأدوات الأساسية في شبكات الحاسوب، حيث يُستخدم لاختبار الاتصال بين جهازك وأي مضيف آخر عبر إرسال حزم بيانات صغيرة وانتظار الرد. في البيئات التي تتضمن عدداً كبيراً من الأجهزة، مثل شبكات المكاتب أو مراكز البيانات، قد تحتاج إلى اختبار الاتصال بعدة عناوين IP في نفس الوقت لتوفير الوقت والجهد. يوفر موجه الأوامر في نظام ويندوز عدة طرق لتحقيق ذلك، سواء باستخدام الأوامر التقليدية أو باستخدام باور شيل. في هذا المقال، سنستعرض بالتفصيل الطرق المختلفة لاختبار اتصال عدة أجهزة في وقت واحد، مع شرح مزايا كل طريقة وأمثلة عملية عليها.

الطريقة الأساسية: ping متعدد العناوين في سطر واحد

أبسط طريقة لاختبار اتصال عدة أجهزة في نفس الوقت هي كتابة أمر ping مع عناوين IP متعددة مفصولة بمسافات. على سبيل المثال، يمكنك كتابة الأمر التالي في موجه الأوامر:

ping 8.8.8.8 1.1.1.1 8.8.4.4

عند تنفيذ هذا الأمر، سيقوم النظام بإرسال طلبات ping لكل عنوان على حدة، لكن بشكل متسلسل وليس متوازياً. أي أنه سينتظر انتهاء اختبار العنوان الأول ثم ينتقل إلى الثاني وهكذا. هذه الطريقة مفيدة عندما يكون لديك عدد قليل من العناوين وتريد الاطلاع على نتائج كل منها بشكل منفصل. ومع ذلك، إذا كان لديك عشرات العناوين، فقد تصبح العملية بطيئة وتستغرق وقتاً طويلاً. لاحظ أن هذه الطريقة تعمل في ويندوز 10 وويندوز 11 وجميع الإصدارات الحديثة.

أمر ping في موجه الأوامر لعدة أجهزة في نفس الوقت - 1

الطريقة الثانية: استخدام حلقة for لتكرار ping على نطاق IP

إذا كنت بحاجة إلى اختبار نطاق كامل من العناوين، مثل اختبار جميع الأجهزة في شبكة فرعية (مثلاً 192.168.1.1 إلى 192.168.1.254)، فإن أفضل حل هو استخدام حلقة for في موجه الأوامر. هذه الحلقة تتيح لك تنفيذ أمر ping متكرر لكل عنوان في النطاق المحدد، مع إمكانية تصفية النتائج لعرض الردود الناجحة فقط. الأمر الأساسي هو:

for /L %i in (1,1,254) do ping -n 1 -w 20 192.168.0.%i | find "Reply"

في هذا الأمر، يُستخدم المتغير %i ليمثل الجزء الأخير من عنوان IP، ويتم تكراره من 1 إلى 254. خيار -n 1 يحدد إرسال حزمة واحدة فقط لكل عنوان، بينما -w 20 يحدد مهلة الانتظار بـ 20 مللي ثانية. بعد ذلك، يتم تمرير الناتج إلى الأمر find للبحث عن كلمة "Reply" التي تشير إلى نجاح الاتصال. بهذه الطريقة، تحصل على قائمة بالأجهزة النشطة فقط دون إظهار رسائل الفشل. يمكن تعديل النطاق ليناسب شبكتك، واستخدام هذه الطريقة لفحص الشبكة بسرعة.

تعد هذه الطريقة فعالة جداً لمهام مثل اكتشاف الأجهزة المتصلة بالشبكة المحلية أو التحقق من حالة الخوادم في نطاق IP معين. يمكنك أيضاً حفظ النتائج في ملف نصي باستخدام إعادة التوجيه (> file.txt).

أمر ping في موجه الأوامر لعدة أجهزة في نفس الوقت - 2

الطريقة الثالثة: باور شيل وcmdlet Test-Connection

في ويندوز، توفر باور شيل cmdlet متطوراً يُسمى Test-Connection، وهو مصمم لاختبار الاتصال بطريقة أكثر حداثة مقارنة بأمر ping التقليدي. هذا الأمر يدعم بشكل أصلي اختبار اتصال عدة أجهزة في نفس الوقت بالتوازي. الميزة الكبيرة هنا هي أن الاختبار يتم بشكل متزامن، مما يقلل إجمالي الوقت المستغرق بشكل كبير. الأمر الأساسي لاختبار ثلاثة عناوين هو:

Test-Connection -ComputerName 8.8.8.8, 1.1.1.1, 8.8.4.4 -Count 1

يقوم هذا الأمر بإرسال حزمة واحدة (Count 1) إلى كل عنوان من العناوين المحددة في وقت واحد، ثم يعرض النتائج لكل عنوان. يمكنك أيضاً استخدام أسماء المضيفين بدلاً من عناوين IP. إذا كنت تريد اختبار نطاق كامل، يمكنك دمج Test-Connection مع حلقة foreach في باور شيل:

1..254 | ForEach-Object { Test-Connection -ComputerName "192.168.0.$_" -Count 1 -Quiet }

أمر ping في موجه الأوامر لعدة أجهزة في نفس الوقت - 3

الخيار -Quiet يجعل الأمر يُرجع قيمة منطقية (True/False) بدلاً من النتائج التفصيلية، مما يسهل معالجتها لاحقاً. Test-Connection يوفر أيضاً معلومات إضافية مثل وقت الرحلة (RTT) وحالة الحزمة.

الطريقة الرابعة: وظائف باور شيل الخلفية (Start-Job) للتوازي الحقيقي

عند الحاجة إلى اختبار اتصال مستمر (ping -t) لعدة أجهزة في وقت واحد بشكل متوازٍ حقيقي، يمكن استخدام وظائف باور شيل الخلفية. تسمح لك Start-Job بتشغيل أوامر في خيوط منفصلة، مما يتيح تنفيذ عمليات ping متزامنة دون انتظار انتهاء بعضها البعض. على سبيل المثال:

للبدء بوظيفة خلفية لعنوان واحد:

Start-Job -ScriptBlock { while($true) { ping -n 1 8.8.8.8 | Out-Null; Start-Sleep -Seconds 1 } }

أمر ping في موجه الأوامر لعدة أجهزة في نفس الوقت - 4

يمكن تكرار ذلك لكل عنوان IP في قائمة. يمكنك حفظ الوظائف في متغيرات والتحكم فيها لاحقاً. هذه الطريقة مناسبة لمراقبة عدة خوادم في الوقت الفعلي، حيث يمكنك توجيه النتائج إلى ملفات سجل منفصلة. لاحظ أن هذه الطريقة تتطلب إدارة دقيقة للوظائف لضمان عدم تراكمها.

من الممارسات الجيدة استخدام Get-Job لعرض حالة الوظائف و Receive-Job لجمع النتائج. يمكنك أيضاً إنشاء نص برمجي (script) يأخذ قائمة عناوين IP من ملف نصي ويبدأ وظائف خلفية لكل منها.

الطريقة الخامسة: أدوات خارجية مثل PingInfoView

إذا كنت تفضل واجهة رسومية بدلاً من سطر الأوامر، فهناك أدوات طرف ثالث متخصصة في اختبار اتصال عدة أجهزة في وقت واحد. أحد أشهر هذه الأدوات هو PingInfoView من شركة NirSoft. هذه الأداة مجانية ومحمولة، وتوفر واجهة بسيطة تسمح لك بإدخال قائمة بعناوين IP أو أسماء المضيفين، ثم تبدأ في إرسال طلبات ping لكل منهم بشكل متوازٍ وعرض النتائج في الوقت الفعلي. يمكنك رؤية حالة كل جهاز (ناجح/فاشل) ووقت الاستجابة، وتصدير النتائج إلى ملف CSV أو HTML. تدعم الأداة أيضاً خيار ping المستمر لكل جهاز على حدة.

تعد هذه الأداة خياراً ممتازاً للمستخدمين الذين لا يرغبون في كتابة أوامر معقدة، أو للمسؤولين الذين يحتاجون إلى مراقبة سريعة للشبكة دون إعداد نصوص برمجية. تعمل PingInfoView على جميع إصدارات ويندوز، من Windows XP إلى Windows 11.

أمر ping في موجه الأوامر لعدة أجهزة في نفس الوقت - 5

جدول مقارنة بين الطرق المختلفة لاختبار ping على أجهزة متعددة

لتوضيح الفروقات بين هذه الطرق، إليك جدول يلخص المزايا والعيوب الرئيسية لكل طريقة:

الطريقةالتوازيسهولة الاستخدامالتكلفةالمرونة
ping مع عناوين متعددة في سطر واحدتسلسلية (متتابعة)سهلة جداًمضمنة في ويندوزمحدودة (عناوين قليلة)
حلقة for في موجه الأوامرتسلسلية (متتابعة)متوسطة (تحتاج معرفة بالحلقات)مضمنة في ويندوزجيدة (نطاقات IP)
Test-Connection في باور شيلمتوازية (متزامنة)سهلة نسبياً مع معرفة باور شيلمضمنة في ويندوزعالية (مرونة في المعالجة)
Start-Job في باور شيلمتوازية حقيقية (خلفية)متقدمة (تحتاج خبرة في الوظائف)مضمنة في ويندوزعالية جداً (مراقبة مستمرة)
PingInfoView (أداة خارجية)متوازية (في الوقت الفعلي)سهلة جداً (واجهة رسومية)مجانيةجيدة (خيارات تصدير وإعدادات)

قائمة بمزايا استخدام ping متعدد الأجهزة

  • توفير الوقت: بدلاً من اختبار كل جهاز على حدة، يمكن اختبار عشرات الأجهزة في وقت واحد أو متسلسل بسرعة.
  • اكتشاف الأجهزة النشطة: تساعدك هذه التقنيات في الحصول على قائمة بالأجهزة المتصلة بالشبكة خلال دقائق.
  • مراقبة مستمرة: مع الأوامر المتقدمة مثل Start-Job، يمكن مراقبة عدة خوادم بشكل متزامن وتلقي تنبيهات عند حدوث انقطاع.
  • التكامل مع سكربتات الأتمتة: يمكن دمج هذه الأوامر في سكربتات أكبر لأتمتة مهام إدارة الشبكة، مثل تسجيل النتائج في قاعدة بيانات أو إرسال بريد إلكتروني عند فشل الاتصال.
  • التكلفة الصفرية: جميع الطرق المذكورة (باستثناء الأدوات الخارجية الاختيارية) مضمنة في نظام ويندوز ولا تتطلب شراء برامج إضافية.

نصائح عملية لتحسين تجربة ping المتعدد

عند استخدام أي من الطرق السابقة، هناك بعض النقاط التي يجب مراعاتها لضمان دقة النتائج. أولاً، تأكد من أنك تستخدم مهلة انتظار (timeout) مناسبة للشبكة المحلية؛ ففي الشبكات البطيئة، قد تحتاج إلى زيادة قيمة -w إلى 100 أو 200 مللي ثانية. ثانياً، عند اختبار نطاق كبير من العناوين، استخدم الخيار -n 1 لتقليل حركة المرور على الشبكة. ثالثاً، احفظ النتائج في ملف نصي أو CSV لتحليلها لاحقاً، خاصة إذا كنت تبحث عن أنماط فشل متكررة. رابعاً، استخدم باور شيل بدلاً من موجه الأوامر التقليدي إذا كنت بحاجة إلى مرونة أكبر، حيث يدعم المعالجة المتوازية بشكل أفضل.

علاوة على ذلك، احرص على تشغيل موجه الأوامر أو باور شيل بصلاحيات المسؤول إذا كنت تختبر عناوين قد تحتاج إلى تغيير إعدادات الشبكة المحلية. في بيئات الشبكات المؤسسية، قد تكون هناك جدران نارية (firewalls) تمنع حزم ICMP، مما قد يتسبب في عدم ظهور ردود ping حتى لو كان الجهاز قيد التشغيل. في هذه الحالات، قد تحتاج إلى استخدام بروتوكولات أخرى مثل TCP (عبر Telnet أو Test-NetConnection في باور شيل).

المراجع

تم الاعتماد في كتابة هذا المقال على المصادر التالية: وثائق مايكروسوفت الرسمية حول أمر ping في ويندوز Microsoft Learn - ping command والتي تشرح صيغة الأمر وخياراته بالتفصيل. كما تم الاستعانة بمناقشات المستخدمين على موقع SuperUser حول كيفية ping نطاق IP باستخدام حلقة for في موجه الأوامر SuperUser - ping range. بالإضافة إلى ذلك، تم الرجوع إلى وثائق باور شيل الخاصة بـ Test-Connection و Start-Job على موقع Microsoft Docs ومقالات تقنية من NirSoft حول أداة PingInfoView. نشكر جميع هذه المصادر على المعلومات القيمة التي ساعدت في إعداد هذا الدليل الشامل.

ping cmd موجه الأوامر شبكة تشخيص Windows
تنبيه المعلومات لأغراض تعليمية وقد تختلف بعض الخطوات حسب إصدار النظام
المؤلف

Stefano Barcellos

مساهم في Visite Barbados.

« المنشور السابق
مؤشر مستوى الحبر: دقة وقراءة واضحة للطباعة

منشورات ذات صلة