begin process at 2012 05 27 06:08:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > CLASSE .NET LISTANT LES ADRESSES MAC D'UNE MACHINE - COMPATIBLE XP/2000/NT

CLASSE .NET LISTANT LES ADRESSES MAC D'UNE MACHINE - COMPATIBLE XP/2000/NT


 Description

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 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
' -------------------------------------------------
' 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?ur l=/library/en-us/wmisdk/wmi/win32_networkadapter.a sp

Je tiens à remercier Romelard Fabrice (Alias F___) pour sa source DotNetSysInfo qui se trouve à cette adresse :
http://www.aspfr.com/code.aspx?ID=24137

Vraimen t trés riche :)


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) BALISE XITI AUTOMATIQUE - WEBCONTROLE PERMETTANT D'INSÉRER L...
Source avec Zip Source avec une capture Source .NET (Dotnet) COMBOBOXEX - COMBOBOX AVEC IMAGES - WEBCONTROL EN POUR ASP É...

 Sources de la même categorie

Source avec Zip UPLOAD ET SA GESTION VIA FSO par Caius_junioricus
Source avec Zip Source .NET (Dotnet) CLASSE AVEC QUE DES MEMBRES ET DES MÉTHODES STATIQUES POUR G... par tikrimi
Source .NET (Dotnet) ASP.NET - COMMENT OBTENIR LE CONTENU D'UNE PAGE WEB DISTANTE... par fabrice69
PING D'UNE LISTE DE POSTE : WHOSBAD par defrance
Source .NET (Dotnet) ASP.NET - COMMENT AFFICHER SUR SON SITE UNE IMAGE PROVENANT ... par fabrice69

 Sources en rapport avec celle ci

ENVOIE MAIL EN SMTP DEPUIS WINDOWS 2003 / ASP SANS COMPOSANT par lord mathius
RÉCUPERER LE NOM DE RESEAU D'UNE MACHINE par Pioupiou
TESTER LA VALIDITÉ D'UN E-MAIL par vbtom
VALIDATION D'UN EMAIL, EN QUELQUES LIGNES... par Jos
TESTER LA VALIDITÉ D'UN E-MAIL. par SuperYan

Commentaires et avis

Commentaire de fabrice69 le 15/09/2004 16:08:15 administrateur CS

Cette source même si elle est bien devrait plutot être sur le site de vbfrance. C'est une classe .NET.

De plus le WMI est spécifique lorsqu'on cherche à l'interroger et nécessite des droits particuliers qui ne sont pas attribués par défaut au compte exécutant aspnet.

Alors que dans le cas d'une Winform c'est beaucoup plus simple car cela utilise le compte de l'utilisateur courant.

Romelard Fabrice.

Commentaire de aKheNathOn le 15/09/2004 16:22:51

Lol, oui je viens de m'en rendre compte. Ce n'est pas du tout spécifique à l'asp, mais bossant sur un projet ASP, j'ai pas vraiment cogité, et je l'ait mis sur ASPFR. Pour ce qui est des droits, t'as tout à fait raison, mais je pense que c'est pour cette raison qu'on à les paramétres UserName et Password, mais je saurais pas te dire s'ils servent à ouvrir des droits en local.

Comme tu vois, j'ai fais un petit copier/coller de ta source et je lui ait apporté quelques modifications pour mes besoins spécifiques. J'espére que tu m'en veut pas :).

Bonne prog et à+, akh

Commentaire de fabrice69 le 15/09/2004 20:02:12 administrateur CS

Aucun problème pour ca de mon coté.

Pour la connexion sur un serveur distant, aucun problème avec les droits (puisque tu dois fournir le compte pour celui-ci).
En revanche, pour la connexion en Local (le paramètre par défaut de ton serveur), c'est la qu'il prend le compte exécutant aspnet. De ce fait, il est obligatoire que ce compte ait les droit de travailler avec wmi.

En localhost, tu ne peux pas fournir de compte/mdp différent de celui exécutant l'application. Il est aussi possible d'utiliser l'impersonate pour spécifier le compte que doit utiliser le site WEB sur la page où l'ensempble du site.

Romelard Fabrice.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Obtenir l'adresse MAC à partir de l'IP [ par jsens74 ] Bonjour ! Je fais un stage dans une entreprise qui a un gros reseau et je dois leur faire un truc genre : "Creer un programme" (ou un script) sous routage IP [ par flolepro ] Routage IPSoit sur une machine d?adresse IP 192.134.119.100. Quelle est l?adresse du réseau et l?adresse de la machine ? Soit la table de routage de c Langage du site selon l'adresse MAC de l'utilisateur [ par lhoussainben ] Bonjour, Je suis un débutant en ASP et je commence à faire des scripts, création des cookies utilisation des variables serveur etc... Je veux c Obtenir l'adresse ip client avec wsock32.dll [ par pippo62 ] Bonjour, je suis nouveau dans le coin, je ne sais pas trop si c'est l'endroit pour poser ce genre de post, vous me direz.. Je développe sous windev choix techniques pour réseau locale [ par tamalgo ] Bonjour tout le monde, Je dois réaliser une application sur un réseau locale de 5 PC, un est serveur et les 4 d'autres clients je suis débutant donc m calculer le centre d'un réseau [ par fahemgtr ] bonjour j'ai un problème avec mon sujet de fin d&#8217;études,mon sujet est "étude comparative entre de méthodes pour calculer le centre d'un réseau VB 2010 ouvrir une page internet, la recharger mais l adresse change. [ par Phlos74 ] Bonjour Est ce que quelqu'un pourrai m'aider s'il vous plait. Voila je voudrai créer un programme avec visual basic 2010. Je voudrai que quand j appui réseau de neurone [ par ss1989 ] bonjour , svp comment programmer l&#8217;apprentissage et la classification supervisée de réseau de neurone en utilisant la base iris sur matlab . j'a Serveur web local avec IIS [ par Troopers ] Salut!Je débute avec IIS!J'ai créé un serveur web local sur ma machine de dev qui est sur un réseau LAN dans mon entreprise. Jusque là ça fonctionne..


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales