devxlogo

LanCardAddress – Read the Ethernet address of a LAN card

LanCardAddress – Read the Ethernet address of a LAN card

Const NCBNAMSZ = 16Private Type 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    ncb_event As LongEnd TypePrivate 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 IntegerEnd TypePrivate Type NAME_BUFFER    name As String * NCBNAMSZ    name_num As Integer    name_flags As IntegerEnd TypePrivate Type ASTAT    adapt As ADAPTER_STATUS    NameBuff(10) As NAME_BUFFEREnd TypePrivate Declare Function Netbios Lib "netapi32.dll" (pncb As NCB) As Byte' Read the Ethernet address of a LAN card.' This number can be considered to uniquely identify a network adapterPrivate Function LanCardAddress(ByVal cardNum As Long) As String    Dim ncbInfo As NCB    Dim astatInfo As ASTAT    Dim i As Integer        Const NCBASTAT = &H33    Const NCBRESET = &H32        'Reset the card    ncbInfo.ncb_command = NCBRESET    Netbios ncbInfo        ' Get info from the card    ncbInfo.ncb_command = NCBASTAT    ncbInfo.ncb_lana_num = cardNum    ncbInfo.ncb_callname = "* "    ncbInfo.ncb_length = Len(astatInfo)    ' prepare the address where the result is to be delivered    ncbInfo.ncb_buffer = VarPtr(astatInfo)    Netbios ncbInfo        ' read the result    For i = 0 To 5        LanCardAddress = LanCardAddress & Right$("00" & Hex$ _            (astatInfo.adapt.adapter_address(i)), 2)    Next    End Function

devx-admin

Share the Post: