Cette classe vous permettra de lister toutes les adresses mac d'une machine qu'elle soit local ou distante. Elle utilise les methode WMI proposées par le frameWork.
Source / Exemple :
' -------------------------------------------------
' Exemple d'utilisation dans un projet :
' -------------------------------------------------
Dim p As Integer
Dim mac As New MacAdresses
For p = 0 To mac.Count
MsgBox(mac.Item(p))
Next
' ------------------------------------------------------------
' Exemple d'utilisation sur une machine distante :
' ------------------------------------------------------------
Dim p As Integer
Dim mac As New MacAdresses("NomMachine", "UserName", "Password")
For p = 0 To mac.Count
MsgBox(mac.Item(p))
Next
' Voici donc cette classe
Private Class MacAdresses
Dim i As Integer
Dim Adresses() As String
Public Sub New(Optional ByVal MachineName As String = "localhost", Optional ByVal UserName As String = "", Optional ByVal Password As String = "")
Dim co As New System.Management.ConnectionOptions
Dim oq As System.Management.ObjectQuery
Dim query As System.Management.ManagementObjectSearcher
Dim ms As System.Management.ManagementScope
Dim queryCollection As System.Management.ManagementObjectCollection
Dim MonMO As System.Management.ManagementObject
Dim j As Integer
Dim doublons As Boolean
If UserName <> "" And Password <> "" Then
co.Username = UserName
co.Password = Password
End If
Try
ms = New System.Management.ManagementScope("\\" + MachineName + "\root\cimv2", co)
oq = New System.Management.ObjectQuery("SELECT MACAddress FROM Win32_NetworkAdapter")
query = New System.Management.ManagementObjectSearcher(ms, oq)
queryCollection = query.Get()
i = 0
For Each MonMO In queryCollection
If Not MonMO("MACAddress") Is Nothing Then
doublons = False
For j = 0 To i - 1
If Adresses(j) = MonMO("MACAddress") Then
doublons = True
Exit For
End If
Next
If Not doublons Then
ReDim Adresses(i)
Adresses(i) = MonMO("MACAddress")
i = i + 1
End If
End If
Next
Catch ex As Exception
End Try
End Sub
ReadOnly Property Count() As Integer
Get
Return i
End Get
End Property
Public Function Item(ByVal index As Integer) As String
If index > -1 And index < i Then
Return Adresses(index)
End If
End Function
End Class
Conclusion :
Pour plus de détails sur la classe WMI allez à cette adresse :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_networkadapter.asp
Je tiens à remercier Romelard Fabrice (Alias F___) pour sa source DotNetSysInfo qui se trouve à cette adresse :
http://www.aspfr.com/code.aspx?ID=24137
Vraiment trés riche :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.