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

See also  Comparing different methods of testing your Infrastructure-as-Code
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist