Results 1 to 5 of 5

Thread: Finding out the MAC address?

  1. #1

    Thread Starter
    Hyperactive Member
    Join Date
    Aug 2000
    Location
    Texas
    Posts
    313

    Question

    Is there anyway of finding out the MAC address on a NIC card? Alos does a modem have a MAC address?

  2. #2
    Frenzied Member
    Join Date
    Aug 2000
    Posts
    1,091
    From within VB, I don't know.. But from Windows, Start / Run and then type in winipcfg

    It will give you the adapter address which is the MAC address, I beleive...

    Dan

  3. #3
    Fanatic Member Dim's Avatar
    Join Date
    Jul 2000
    Posts
    620
    From VB:
    Code:
    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_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
       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.dll" (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
    
    
    Private Function GetAddressMAC() As String
       Dim strBuffer As String
       Dim lngASTAT 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)
       
       lngASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS _
                Or HEAP_ZERO_MEMORY, NCB.ncb_length)
                
       If lngASTAT = 0 Then
          MsgBox "memory allocation failed!"
          Exit Function
       End If
       
       NCB.ncb_buffer = lngASTAT
       Call Netbios(NCB)
       
       CopyMemory AST, NCB.ncb_buffer, Len(AST)
       
       strBuffer = Format(Hex(AST.adapt.adapter_address(0)), "00") & " " & _
             Format(Hex(AST.adapt.adapter_address(1)), "00") & " " & _
             Format(Hex(AST.adapt.adapter_address(2)), "00") & " " & _
             Format(Hex(AST.adapt.adapter_address(3)), "00") & " " & _
             Format(Hex(AST.adapt.adapter_address(4)), "00") & " " & _
             Format(Hex(AST.adapt.adapter_address(5)), "00")
                  
       HeapFree GetProcessHeap(), 0, lngASTAT
    
       GetAddressMAC = strBuffer
    End Function
    
    
    Private Sub Form_Load()
    Text1.Text = GetAddressMAC
    End Sub
    I don't think that modems have MAC's but i could be wrong.
    Hope that helps,
    D!m
    Dim

  4. #4
    Guest
    As far as I know modems DO have a MAC address (but only while a connection open)... Just my $0.02. Not sure either..

  5. #5
    New Member
    Join Date
    Jan 2001
    Location
    Minnesota
    Posts
    15
    yes modems have mac addresses, from what ive learned is that every host on the internet has one

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width