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

مشكلة خاصة ب Get mac address from client

بدأه Gomah gouda في 6 فبراير 2013 · 6 رد · 975 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اسف لقد قمت بتكرار الموضوع مرة اخرى وذلك بسبب عدم وجود رد فى المكان الاول

 

أقوم بتصميم موقع بلغة  Asp.net  و احتاج الى  كود  يجلب لى  ال Mac Address  الخاص بال Client  

و قد جربت عدة اكواد  وجدتها فى منتدى الفريق  و لكن  للاسف دون جدوى فجميع الاكواد الموجودة

تؤدى الى نتيجة واحدة و هى جلب  Mac Addess  للسرفير الذى استضيف عليه موقعى و ليس جهاز العميل

و لقد ارفقت ملف به الاكواد التى جربتها  حتى اننى جرب بعض اكواد الجافا سكربت و لكن حصلت على اخطاء ايضا

 

الاكواد التى قمت بتجربتها

الكود الاول

Public Function GetMACAddress() As String

        Dim computerProperties As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()

        Dim nics As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()

       

        Dim sMacAddress As [string] = String.Empty

        For Each adapter As NetworkInterface In nics

            If sMacAddress = [string].Empty Then

                Dim properties As IPInterfaceProperties = adapter.GetIPProperties()

    sMacAddress = adapter.GetPhysicalAddress.ToString()

            End If

        Next

 

        Return sMacAddress

 

    End Function

 

 

 

 

 

 

الكود الثانى :-

 

Private Function ListerMACs() As String

        Dim os As OperatingSystem = Environment.OSVersion

        Dim pid As PlatformID = os.Platform

 

        Dim computerProperties As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()

        Dim nics As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()

        Dim HostDomain As [string] = ("Interface information for " + computerProperties.HostName & ".") + computerProperties.DomainName

        Dim MACList As String = String.Empty

        Dim s As [string]

        For Each adapter As NetworkInterface In nics

            s = String.Empty

            Dim properties As IPInterfaceProperties = adapter.GetIPProperties()

            Dim address As PhysicalAddress = adapter.GetPhysicalAddress()

            Dim bytes As Byte() = address.GetAddressBytes()

            For i As Integer = 0 To bytes.Length - 1

                s = s & bytes(i).ToString("X2")

                If i <> bytes.Length - 1 Then

                    s = s & ":"

                End If

            Next

            MACList += s & vbLf

        Next

        Return MACList

    End Function

اكواد Mac.doc

#2

يمكنك الحصول على عنوان الماك للحاسوب لو كان على نفس الشبكة، لكن عنوان الماك لحاسوب عبر الإنرنت فهذا غير ممكن.

#4
اقتباس

تؤدى الى نتيجة واحدة و هى جلب  Mac Addess  للسرفير الذى استضيف عليه موقعى و ليس جهاز العميل

ولن تحصل على غير هذه النتيجة حيث ان اكواد ال asp.net  تتنفذ على السيرفر وليس على الكلينت والكلينت في النهاية يرى الموقع ك HTML .

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

#5

الاستاذ / الفاضل  TareqVB     

الاخوة  الكرام 

اشكر سيادتكم على تفاعلكم  و يبدوا ان الامر فعلا  كما ذكر استاذ  طارق  ان اكواد  ال asp.net  تنفذ على السيرفر و ليس على جهاز العميل و لذا حاولت ان استخدم  اكواد جافا 

غير ان ظهر  خطأ اثناء تنفيذ الكود و قد وضحته فى الملف المرفق فى اخر صفحة

 

عموما اود توضيح لماذا اريد الحصول على Mac address 

الامر ان عندى مجموعة  من المستخدمين  ( البائعين )  فى عدة  فروع  (نقاط بيع )  و لكل واحد منهم  كلمة مرور و اسم مستخدم  و يمكن لاى مستخدم الولوج الى داخل الموقع من اى مكان فى العالم  و لكنى اريد ان امنع ولوج المستخدمين الى الصفحات الخاصة بالموقع  الا من خلال اجهزة  الفروع فقط 

 

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

 

السادة الافاضل اسف لانى اطيل عليكم

و تقبلوا  خالص تحياتى

 

جزاكم الله خيرا و جعلكم فى العون دائما

 

اخوكم جمعة جودة

#6

المسألة لاعلاقة لبأين تنفذ أكواد asp.net، حزمة الـhttp  التي تحصل عليها من المستخدم تحمل جميع المعلومات التي تخصّ المستخدم مثل عنوان الـip والمنفذ لكنها لاتحمل عنوان الماك له، من أين ستأتي به؟ يمكنك الحصول على عنوان الماك لو كنت أنت والمستخدم على نفس الشبكة لكن عبر الإنرنت بإتصال يمر على عدةّ شبكات غير ممكن.

 

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

 

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

تم تعديل هذه المشاركة بواسطة Mr.B في 7 فبراير 2013 في 21:54

#7

شكرا لاهتمامك اخى العزيز  MR.B

و جزاكم الله خيرا

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