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

كيف أحصل على رقم ال MAC Address ?

مغلق
بدأه حمزة في 18 يوليو 2004 · 4 رد · 3,054 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم...

عندي برنامج وأقوم بحمايته... قرأت منذ مدة في منتدى أجنبي أن أفضل طريقة هي إستعمال الرقم التسلسلي للـ Hard Disk و رقم الـ MAC Address وجدت الطريقة الخاصة بالحصول على الرقم التسلسلي للـ Hard Disk على هذا العنوان. السؤال كيف أحصل على الـ MAC Address?

بالمناسبة هذا الموقع www.parmaja.com رائع جداً حيث يوجد فيه العديد من المواضيع والمقالات المفيدة أرجو أن يعجبكم.

اقتباس
How to get experience without a job, and how to get a job without experience
#2

يا أخوان معقول لا يوجد أحد يعرف؟؟؟؟

عبرونا....

اقتباس
How to get experience without a job, and how to get a job without experience
#3

**** الكود منقول ****

خاص بفيجوال بيسك 6

يمكنك ايضاً الاستعانه ببرنامج all api الكتاب و البرنامج على هذا الرابط

/index.php?showtopic=39269

Option Explicit

Private Const NCBASTAT As Long = &H33
Private Const NCBNAMSZ As Long = 16
Private Const HEAP_ZERO_MEMORY As Long = &H8
Private Const HEAP_GENERATE_EXCEPTIONS As Long = &H4
Private Const NCBRESET As Long = &H32

Private Type NET_CONTROL_BLOCK  'NCB
   ncb_command    As Byte
   ncb_retcode    As Byte
   ncb_lsn        As Byte
   ncb_num        As Byte
   ncb_buffer     As Long
   ncb_length     As Integer
   ncb_callname   As String * NCBNAMSZ
   ncb_name       As String * NCBNAMSZ
   ncb_rto        As Byte
   ncb_sto        As Byte
   ncb_post       As Long
   ncb_lana_num   As Byte
   ncb_cmd_cplt   As Byte
   ncb_reserve(9) As Byte 'Reserved, must be 0
   ncb_event      As Long
End Type

Private Type ADAPTER_STATUS
   adapter_address(5) As Byte
   rev_major         As Byte
   reserved0         As Byte
   adapter_type      As Byte
   rev_minor         As Byte
   duration          As Integer
   frmr_recv         As Integer
   frmr_xmit         As Integer
   iframe_recv_err   As Integer
   xmit_aborts       As Integer
   xmit_success      As Long
   recv_success      As Long
   iframe_xmit_err   As Integer
   recv_buff_unavail As Integer
   t1_timeouts       As Integer
   ti_timeouts       As Integer
   Reserved1         As Long
   free_ncbs         As Integer
   max_cfg_ncbs      As Integer
   max_ncbs          As Integer
   xmit_buf_unavail  As Integer
   max_dgram_size    As Integer
   pending_sess      As Integer
   max_cfg_sess      As Integer
   max_sess          As Integer
   max_sess_pkt_size As Integer
   name_count        As Integer
End Type
   
Private Type NAME_BUFFER
   name        As String * NCBNAMSZ
   name_num    As Integer
   name_flags  As Integer
End Type

Private Type ASTAT
   adapt          As ADAPTER_STATUS
   NameBuff(30)   As NAME_BUFFER
End Type

Private Declare Function Netbios Lib "netapi32" (pncb As NET_CONTROL_BLOCK) As Byte
     
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As _
    Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
     
Private Declare Function GetProcessHeap Lib "kernel32" () As Long

Private Declare Function HeapAlloc Lib "kernel32" (ByVal hHeap As Long, ByVal _
    dwFlags As Long, ByVal dwBytes As Long) As Long
     
Private Declare Function HeapFree Lib "kernel32" (ByVal hHeap As Long, ByVal dwFlags _
    As Long, lpMem As Any) As Long

Public Function GetMACAddress() As String
Dim x As Integer
Dim tmp As String
Dim pASTAT As Long
Dim NCB As NET_CONTROL_BLOCK
Dim AST As ASTAT

NCB.ncb_command = NCBRESET
Call Netbios(NCB)

NCB.ncb_callname = "*               "
NCB.ncb_command = NCBASTAT

NCB.ncb_lana_num = 0
NCB.ncb_length = Len(AST)

pASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS Or HEAP_ZERO_MEMORY, NCB.ncb_length)
         
If pASTAT = 0 Then
   Debug.Print "memory allocation failed!"
   Exit Function
End If

NCB.ncb_buffer = pASTAT
Call Netbios(NCB)

CopyMemory AST, NCB.ncb_buffer, Len(AST)

For x = 0 To 5
    tmp = tmp & Right$("00" & Hex(AST.adapt.adapter_address(x)), 2) & "-"
Next x
                 
tmp = Left(tmp, Len(tmp) - 1)
                 
HeapFree GetProcessHeap(), 0, pASTAT

GetMACAddress = tmp

End Function

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 23 يوليو 2004 في 02:16

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#4

ايضاً خاص بفيجوال بيسك دوت نيت

'To get a www address 
Dim i As Integer 
Dim ipE As IPHostEntry = Dns.GetHostByName("www.ibm.com") 
Dim IpA() As IPAddress = ipE.AddressList 
For i = 0 To IpA.GetUpperBound(0) 
    Console.Write("IP Address {0}: {1} ", i, IpA(i).ToString) 
Next 

'To get local address 
Dim sHostName As String 
Dim i As Integer 
sHostName = Dns.GetHostName() 
Dim ipE As IPHostEntry = Dns.GetHostByName(sHostName) 
Dim IpA() As IPAddress = ipE.AddressList 
For i = 0 To IpA.GetUpperBound(0) 
    Console.Write("IP Address {0}: {1} ", i, IpA(i).ToString) 
Next

لاتنسى هنا ان تعمل imports لل :

System.Net

System.Net.Sockets

ارجو ان تعذرنى على كسلى للاسف لايوجد لدى دوت نيت لاضع لك الكود فى مشروع او حتى لدى وقت للتعليق على الكود

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 23 يوليو 2004 في 06:47

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#5

أخ طارق... السلام عليكم ...

أشكرك كثيراً لإجابتك... فقد فرّجت عني... فرّج الله عنك

اقتباس
How to get experience without a job, and how to get a job without experience

هذا الموضوع مغلق.

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