Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.

Tip of the Day
Language: VB5,VB6
Expertise: Intermediate
Oct 27, 2001



Building the Right Environment to Support AI, Machine Learning and Deep Learning

LanCardAddress - Read the Ethernet address of a LAN card

Const NCBNAMSZ = 16

Private 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 Long
End Type

    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
    NameBuff(10) As NAME_BUFFER
End Type

Private 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 adapter

Private 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)
End Function
Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date