سؤال

أنا أكتب تطبيقا يحقن الحزم باستخدام sharppcap..

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

من الواضح، فإن الحصول على عنوان IP للقفز التالي سيكون مفيدا للغاية، حيث يمكنني بعد ذلك استخدام SendARP لتحديد عنوان MAC الخاص به.

الحصول على جدول التوجيه سوف تفعل. كيف يمكنني الحصول على ذلك باستخدام الرمز؟

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

المحلول

كان لدي بعض المشاكل مع WMI (يبدو أن المرء لا يمكن أن يرتبط بين مؤشر واجهة في Win32_IP4Routetable مع جهاز فعلي؛ وثائق MSDN خاطئة، وفشلت تقنيات مزيد من المتتبعات الأخرى على بعض أجهزة الكمبيوتر).

لذلك، اخترت استخدام غير المدار getbestroute., ، والتي أنقذني فعلا الكثير من الوقت، لأنه يتيح لنظام التشغيل Windows القيام بقرار التوجيه على نفسه، وإرجاع عنوان IP للقفز التالي ومعرف NIC الذي يؤدي إلى هذا العنوان. إنه أيضا أسرع بكثير من تشغيل استفسار ضد WMI.

يمكنك بعد ذلك العثور على NIC نفسه، من خلال البحث عن هذا المعرف في القائمة التي تم إرجاعها بواسطة getadaptersinfo..

آمل أن يساعد ...

نصائح أخرى

يتم حل العناوين الفيزيائية من قبل بروتوكول تحليل العنوان - فقط أرسل ARP Reuest. مع عنوان IP لحلها.

إذا لم تكن الوجهة في الشبكة المحلية، فيجب إرسال الحزمة إلى العبارة القياسية، يجب على المرء إجراء طلب ARP للحصول على العبارة القياسية. يمكن الحصول على البوابة القياسية باستخدام الأساليب من system.net.networkinformation. مساحة الاسم.

 NetworkInterface.GetAllNetworkInterfaces()[0].GetIPProperties().GatewayAddresses

طريقة الاختراق تماما للقيام بذلك هي تشغيل الأمر "ARP -A" وقراءة وتحليل نتائج الأمر (باستخدام arp. ذاكرة التخزين المؤقت التي عقدت بالفعل بواسطة ويندوز).

خلاف ذلك، تحتاج إلى تضمين ARP في مكدس البروتوكول الخاص بك. هذه هي الطريقة التي يعمل بها النظام نفسه لمعرفة مكان إرسال إطارات. أو أخيرا إذا لم تكن قلقة بشأن كونك غير فعال، فيمكنك ضبط وجهة الإيثرنت الخاصة بك على النحو التالي: FF: FF: FF: FF: FF: FF والفيضانات الجميع على نفس الشبكة المحلية كما أنت. عندما يستجيب شيء ما أو تحصل على حزمة، تخزين ذاكرة التخزين المؤقت لها أن يكون لديك عنوان MAC الوجهة المناسبة.

شخصيا، إذا قمت بذلك نهج الجميع في الفيضانات على شبكتي، فأناؤك، ولكن اعتمادا على وضعك قد يكون اختراقا سهلا إلى حد ما. ومع ذلك، فإن القيام بتنفيذ مكدس كامل بنسبة 100٪ معقدة إلى حد ما، لأن هناك الكثير من الحالات الحافة التي يجب أن تكون مدعومة جيدا (مثل التعامل مع ARP الوكيل، ARP غير المبرط، إلخ).

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