الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Get Mac Address

بدأه Hadad.Net في 25 يوليو 2007 · 13 رد · 5,730 مشاهدة · في برمجة الشبكات والتطبيقات الموزعة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هل يوجد كود لاحضار ال Mac Address للجهاز (Physical Address) باستخدام اي طريقة

باستخدام لغات الدوت نت

وشكراً جزيلا

#2
Hadad.Net كتب:
السلام عليكم

هل يوجد كود لاحضار ال Mac Address للجهاز (Physical Address) باستخدام اي طريقة

باستخدام لغات الدوت نت

وشكراً جزيلا

ابحث عن مكتبة packetX على الانترنت فهي مكتبة تدعم ارسال واستقبال الطرود والحصول على صفات كروت الشبكة الموجودة على الحاسب وهي ستفيدك فيما تريد

ملاحظة يمكنك باستخدام هذه المكتبة ارسال طرود بـ mac address من اختيارك ؟!!!!! نعم هذا صحيح

#3

اخي العزيز شكرا على ردك

ولكن ممكن توضح اكتر من ذلك ولو كان في example بيكون افضل

#4

مكتبة الـ packetX مكتبة مبنية فوق مكتبة winpcap وهي ليست مجانية ولكن يمكن ان تجربها لمدة شهر.

يوجد امثلة مع المكتبة مكتوبة بلغات برمجة عدة منها C# واحد من هذه الأمثلة يظهر معلومات عن كروت الشبكة الموصولة على حاسبك

أذن خطوات عملك يجب ان تكون على الشكل التالي

1) تنزيل winpacp

2) تنزيل packetX

3) تنفيذ الأمثلة الموجودة مع المكتبة والتي ستجد فيها ما تريد

4) الفهم

#5

الاخ طلبه بسيط جدا ميحتاجك اداه ولا أي حاجة جرب تشوف WMI وراح تلاقي الحل مجاني

/index.php?showtopic=132930

#6
IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties();
			 NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();

			 String HostDomain = "Interface information for " + computerProperties.HostName + "." + computerProperties.DomainName;
			 //-- listBox1.Items.Add(HostDomain);
			 //-- listBox1.Items.Add("Number of interfaces ... : " + nics.Length);
			 foreach (NetworkInterface adapter in nics)
			 {
				 s = "";
				 IPInterfaceProperties properties = adapter.GetIPProperties(); //  .GetIPInterfaceProperties();

				 //-- listBox1.Items.Add(adapter.Description);
				 //--listBox1.Items.Add(String.Empty.PadLeft(adapter.Description.Length + '='));
				 //-- listBox1.Items.Add("Interface type .......................... : "+ adapter.NetworkInterfaceType);
				 PhysicalAddress address = adapter.GetPhysicalAddress();
				 byte[] bytes = address.GetAddressBytes();
				 for (int i = 0; i < bytes.Length; i++)
				 {

					 s = s + bytes.ToString("X2");
					 //listBox1.Items.Add(s);
					 if (i != bytes.Length - 1)
					 {
						 s = s + "-";
					 }
				 }
				 //--listBox1.Items.Add("Physical address ....................... : " + s);
			 }

أضف

using System.Net.NetworkInformation;
#7

شكراً للجميع على الردود والحمد وجدت الحل لاحضار ال Mac Address بطريقه ولكن تأخذ IP ولقد احضرت ال IP الخاص بالجهاز ولكن المشكله ظهرت لو كان يوجد كرتين شبكه على الجهاز كرت لاسلكي وكرت سلكي والاتنين لهم iP فانا اريد ان يختار الكرت السلكي بشكل مباشر وهكذا فما هو الحل ؟؟

وشكراُ للجميع

#8

السلام عليكم

المثال الذي وضعته لك يوفر لك كل العناوين MAC المتوفرة في حاسوبك دون الحاجة للعنوان IP كما أنه يوفر عدة تفاصيل أخرى

إن كنت تريد الحصول على العنوان MAC المقابل للعنوان IPالذي تضعه فعليك بالمثال في هذه الصفحة حيث إعتمدت على المنهج ARP:Adress Resolution protocol

#9

اخي الكريم شكراُ لتجاوبك ولكن الظاهر انك لم تفهم قصدي جيداً

لتوضيح اكتر :- يوجد لدي اكتر من كرت شبكه على الجهاز فانا اريد ان احضر ال MAC لكرت الشبكه محدد باستخدام ال IP ولكن عندما اعرض ال IPs اللاحظ ان هناك اكتر من IP

ومن ضمن ال IP يوجد IP خاص بكرت شبكه اسمه Microsoft Loopback Adapter

وشكراً

#10

اخي العزيز المثال الذي وضعه لك الأخ Ben_Laiid يوفر لك امكانية جلب العنوان الفيزيائي بناء على الـIP وهو طبعا ما يتم من خلال بروتوكول ARP واعتقد ان هذا هو الحل الأنسب لحالتك ففي حالة إذا اردت كرت شبكة معين فلا يمكنك الوصول إليه إلا من طريقتين الأول عنوان الـMAC لجلب الـIP وهو الـRARP أو عنوان الـIP لجلب الـMAC وهو الـARP ...

#11

شكراً أخ فادي لتجاوبك ولكن ما هي الطريقه لاحضار ال Available Network Adapter Connection ومن ثم يملاهم ب combo box وبعد ذلك يستطيع المستخدم ختيار واحد واحضار ال ip الخاص بهذا الاتصال ومن تم ال MAC .

لفه طويله ولكن ان شاء الله بتوفرلي الحل ان شاء الله

#12

لست قادرا على كشف الـAvailable Network Adapter Connection بدون ان تملك عنوانا لهذا الـ Adapter وفي العادة يتم الكشف عنه بإرسال Broadcast Message إلى كل الأجهزة المتصلة ومثلا للكشف عن MAC من خلال IP يتم ارسال رسالة تحتوي على الـIP المحدد توضع كـARP Query ترسل إلى العنوان ff:ff:ff:ff:ff:ff ويجيب الجهاز المالك للـIP ويرسل عنوان الماك الخاص به كـARP Response إلى الجهاز صاحب الـQuery, في هذه الحالة الحل الوحيد لإنشاء برنامج يقوم بجلب جميع الـMAC الموجودة على الشبكة بدون معرفة الـIP أو الـMAC هي بتوليد ارقام IP تسلسلية والبدأ بعمل ARP Query لكل IP يتم توليده إلى ان تصل إلى نهاية الـSubnet ... وهكذا

#13

السلام عليكم ورحمة الله وبركاته

أخي الكريم " hadad.net ". في الواقع أعتقد بأنه لا يوجد طريقة لجلب العنوان الفيزيائي لشخص ما عن طريق رقم الآي بي إلا في حالة أن تكون جهة رسمية يحق لها ذلك بحيث تتيح لك الشركات المزودة للخدمة ( ADSL ) أو أيا كان بأن تقوم بتخطي الراوترات الخاصه بها وصولا لأجهزة المودم للمستخدمين لكي تحصل على العنوان الفيزيائي لهذا المودم. ففي الحقيقة العملية تجري كالتالي :

1- الشركة تمنحك رقم آي بي عند اتصالك بالنت.

2- عندما يريد شخص او تطبيق ما بالتواصل معك فإنه يتخاطب مع الشركة المزوده للخدما وبالتالي فهو يخاطب الراوترات الخاصة بالشركة.

3- الراوترات الخاصة بالشركة هي التي تملك التخاطب المباشر مع مودمك.

أي أنك عندما تجلب العنوان الفيزيائي فإنك تحصل على العنوان الخاص بأجهزة الشركة !

_________________________

الحل :

أن يكون هناك تطبيق من نوع ( server - clinet ) بحيث يكون السيرفر على جهاز الشخص الذي تريد أن تحصل على العنوان الفيزيائي الخاص بمودمه. فيكون مسموحا لك بالتخاطب مع السيرفر مباشرة.

هذا ما فهمته من بحثي في الموضوع . فان أصبت فمن الله وان أخطأت فمن نفسي والشيطان .

تقبل تحياتي وفائق احترامي.

مواضيع مشابهة