Ali Alwashali-ng
Ali Alwashali-ng

@ali_alwashali

10 تغريدة 9 قراءة Jul 31, 2021
التعامل مع اسماء network interface برمجيا في وندوز اصعب بكثير من لينكس
في العاده، امر ifconfig في لينكس يظهر لك اسماء network cards وتستخدمها في كل شي، حتى برمجيا، في وندوز الامر مختلف تماما
على سبيل المثال مكتبة التعامل ترافيك الشبكه gopacket في golang عندها داله OpenLive تحدد اسم network card لبدء capture
وكل شي يشتغل
لكن ماهو اسم كرت الشبكه في وندوز لنفس هذه الحاله
تجربه الاسماء الي تظهر من خلال الاوامر الاساسيه في وندوز كلها فشلت مثال ipconfig
ماهو الاسم لاستخدامه في الكود
في امر في باورشيل اسمه getmac يظهر اسماء الكروت
في البدايه تظن انه يضبط لكن للاسف ليس الاسم الصحيح
استخدامه في الكود ما يضبط، لا اعرف اذا هذه المشكله في المكتبات الاخرى ايضا او فقط في gopacket
ياتي السؤال هنا، كيف wireshark و tcpdump يتعاملوا مع اسماء الكروت وتحديدها
جربت انزلهم واجرب
tcpdump -D
يظهر لك اسماء الكروت لكن للاسف ما يضبط
من الواضح ان tcpdump يعاني من نفس المشكله لذلك في خيار -D ومن خلال النتيجه تختار رقم الinterface لان مافي امر في وندوز يطلعها (على الاقل من خلال بحثي)
امر msinfo32 لربما اسم الكرت في معلومات الهاردوير
اتضح في الاخير انه لازم نضيف prefex لاسم الكرت بالطريقه التاليه
\Device\NPF_{GUID}
الرقم ناخذه من getmac ونضبطه بحسب الصيغه المطلوب
المشكله هنا تكمن كيف اليوزر العادي الي يستخدم اداتك بيعرف يجيب الاسم، لذلك مضطر تبرمج داله تعرض له الاسماء ويختار منها مثل tcpdump بالضبط
مافي friendly names اساسيه في وندوز، لازم كل مبرمج يسويها لنفسه في اداته

جاري تحميل الاقتراحات...