احصل على قائمة بجميع أجهزة الكمبيوتر الموجودة على شبكة بدون DNS

StackOverflow https://stackoverflow.com/questions/105676

سؤال

تحيات،

أحتاج إلى طريقة (إما عبر C# أو في ملف .bat) للحصول على قائمة بجميع أجهزة الكمبيوتر الموجودة على شبكة معينة.عادةً ما أستخدم "net view"، ولكن هذا يميل إلى العمل (حسب فهمي) داخل نطاقك فقط.أحتاج إلى أسماء (أو على الأقل عناوين IP) لجميع أجهزة الكمبيوتر المتوفرة على شبكتي.

إن القدرة على وضع جميع أجهزة الكمبيوتر في مجال ليس ملكًا لي (وفي هذه الحالة سأستخدم WORKGROUP، أو أيًا كان المجال الافتراضي) ستعمل أيضًا.

هل كانت مفيدة؟

المحلول

نماب يعد هذا أمرًا جيدًا - استخدم الخيار -O لبصمات نظام التشغيل و -oX "filename.xml" لـ انتاج بتنسيق xml يمكنك بعد ذلك تحليله من c#.

سيكون سطر الأوامر المناسب (حيث 192.168.0.0/24 هو الشبكة الفرعية المطلوب فحصها):

nmap -O -oX "filename.xml" 192.168.0.0/24

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

نصائح أخرى

للتوسع في ما قاله Unkwntech -

يمكنك أيضًا إجراء اختبار اتصال "بث" لتجنب الاضطرار إلى اختبار اتصال كل عنوان IP على حدة.

مباشرة بعد ذلك يمكنك استخدام "arp" لفحص ذاكرة التخزين المؤقت لـ ARP والحصول على قائمة بعناوين IP الموجودة على عنوان MAC.

قم باختبار اتصال كل شيء أثناء الغضب، ثم يمكنك الحصول على معلومات netbios من الأنظمة التي تستجيب لتحديد اسمه.

في أحد تطبيقات الويب الخاصة بي، استخدمت وظيفة NetApi32 لتصفح الشبكة.

شفرة:http://Gist.github.com/11668

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top