RECUPERER LA MAC ADRESSE

Signaler
-
FrancisVif
Messages postés
2
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
10 septembre 2012
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/107-recuperer-la-mac-adresse

FrancisVif
Messages postés
2
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
10 septembre 2012

Bon allez, il est sympa que j'apporte aussi ma contribution ...
Voici donc ma méthode pour trouver une adresse MAC, faites-en bon usage, et apportez vos commentaires si nécessaire.
Francis

Option Explicit

Private Declare Function inet_addr Lib "wsock32.dll" (ByVal s As String) As Long
Private Declare Function SendARP Lib "iphlpapi.dll" (ByVal DestIP As Long, ByVal SrcIP As Long, pMacAddr As Long, PhyAddrLen As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dst As Any, src As Any, ByVal bcount As Long)

Sub Form_Load()

Dim MonIp As String, MacLue As String, MaMac As String

' Pour lire l'adresse IP de la machine, ajouter au préalable un contrôle Winsock dans votre feuille nommé Winsock1 '
' Sinon, prédéfinir l'adresse IP de la machine, ou n'importe quelle autre présente sur le réseau) '

MonIp = Winsock1.LocalIP
' MonIp = "192.168.1.1" ' Exemple pour l'adresse MAC d'une LiveBox

If Len(MonIp) > 0 Then
MaMac = LireAdresseMac(MonIp)
If MaMac = "" Then
MaMac = "Erreur de lecture Adresse Mac sur IP:" & MonIp
End If
Else
MaMac = "Erreur d'adresse IP !"
End If

MsgBox MaMac
End

End Sub

Function LireAdresseMac(IpLue As String) As String

Dim NumeroIp As Long, AdresseMac As Long, LongueurAdresse As Long, TableMac() As Byte, n As Integer, Octet As String

NumeroIp = inet_addr(IpLue)

If NumeroIp <> 0 Then
LongueurAdresse = 6
If SendARP(NumeroIp, 0, AdresseMac, LongueurAdresse) = 0 Then
If (AdresseMac <> 0) And (LongueurAdresse <> 0) Then
ReDim TableMac(0 To LongueurAdresse - 1)
CopyMemory TableMac(0), AdresseMac, ByVal LongueurAdresse
For n = 0 To LongueurAdresse - 1
Octet = Hex(TableMac(n))
LireAdresseMac = LireAdresseMac & IIf(Len(Octet) < 2, "0" & Octet, Octet)
If n < LongueurAdresse - 1 Then
LireAdresseMac = LireAdresseMac & "-"
End If
Next
End If
End If
End If

End Function
cs_Ouneufe
Messages postés
60
Date d'inscription
mardi 4 septembre 2001
Statut
Membre
Dernière intervention
19 janvier 2009

ça ne m'affiche que des zéros, désespérant.
alkaesare
Messages postés
5
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
22 décembre 2006

slt je voudrais bien savoir si il y a un moyen pour sécuriser une application VB6 a part l'dresse MAC
et merci d'avance
VBSorcier
Messages postés
102
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
29 avril 2007

ce code il est aussi dans msdn

"HOWTO: Get Network Adapter Address from Visual Basic"