Source : microsoft.com
Dans un module
Code :
- Public Const NCBASTAT As Long = &H33
- Public Const NCBNAMSZ As Long = 16
- Public Const NCBRESET As Long = &H32
- Public 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
- Public 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
- Public Type NAME_BUFFER
- name As String * NCBNAMSZ
- name_num As Integer
- name_flags As Integer
- End Type
- Public Type ASTAT
- adapt As ADAPTER_STATUS
- NameBuff(30) As NAME_BUFFER
- End Type
- Public Declare Function Netbios Lib "netapi32.dll" (pncb As NET_CONTROL_BLOCK) As Byte
- Public Function MACAddress() As String
- Dim macAdr As String
- Dim ncb As NET_CONTROL_BLOCK
- Dim adapter As ASTAT
-
- ncb.ncb_command = NCBRESET
- Call Netbios(ncb)
-
- ncb.ncb_command = NCBASTAT
- ncb.ncb_lana_num = 0
- ncb.ncb_callname = "* "
- ncb.ncb_buffer = VarPtr(adapter)
- ncb.ncb_length = Len(adapter)
-
- Call Netbios(ncb) 'renvoie entre autre la mac adresse dans une structure
- For i = 0 To 5
- macAdr = macAdr & Format$(Hex(adapter.adapt.adapter_address(i)), "00" ) & " "
- Next i
- macAdr = Trim(macAdr) 'Enlève les espces à droite et à gauche de la chaîne
- MACAddress = macAdr
- End Function
|
Là ou on veut récuperer la valeur de l'adresse mac :
Code :
- MsgBox MACAddress 'par exemple
|
Voilà
Edit : toutefois, il est possible de changer l'adresse MAC d'une carte réseau ...
Message édité par knakes le 22-03-2005 à 20:44:54