IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Lister mes adresses ip avec WMI


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 11
    Points
    11
    Par défaut Lister mes adresses ip avec WMI
    Salut à tous,

    Je rencontre un petit soucis avec une requête WMI.
    J'aimerais lister mes adresse ip concernant une de mes cartes réseau seulement je n'arrive qu'a en récupérer une seule. (qui n'est meme pas ma principale).

    Voici ma petite fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Private Function getIPs() As Object
            Dim moOS As ManagementObjectSearcher
            Dim reponse(0) As String
            Dim i As Integer = 0
     
            Try
                moOS = New ManagementObjectSearcher("SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE Description = '" & AdapateurReseau & "'")
            Catch ex As Exception
                moOS = Nothing
            End Try
     
            If moOS Is Nothing Then
                Return moOS
            End If
     
            For Each moIP As ManagementObject In moOS.Get
                ReDim Preserve reponse(i + 1)
                reponse(i) = moIP("IPAddress")(i).ToString
                i += 1
            Next
     
            Return reponse
        End Function
    Ai-je mal compris ?

    Merci d'avance pour votre aide qui me sera on ne peut plus précieuse! :-)

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    il n'y a pas besoin de wmi pour connaitre les ips du poste, dans system.net il y a ce qu'il faut (dns quelque chose la classe)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Ok merci bien pour ta réponse mais comme je le disais, je doit le faire en requête WMI.
    C'est d'office possible puisque elle est sensée me retourner un array d'ip comprenant toutes les ip que j'ai pu définir à cette carte réseau.

    Je pense que mon erreur de compréhension se situe au niveau de la boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each moIP As ManagementObject In moOS.Get
    Pour retourner ma liste de cartes réseau mon code resemble à ceci, et il fonctionne parfaitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Function setListeBoxCartesReseau() As Object
            Dim ListeDesCartes(0) As String
            Dim i As Integer = 0
            Dim moOS As ManagementObjectSearcher
     
            Try
                moOS = New ManagementObjectSearcher("SELECT Description FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
            Catch ex As Exception
                moOS = Nothing
            End Try
     
            If moOS Is Nothing Then
                Return moOS
            End If
     
            For Each moIP As ManagementObject In moOS.Get
                ReDim Preserve ListeDesCartes(i + 1)
                ListeDesCartes(i) = moIP("Description")
                i += 1
            Next
     
            Return ListeDesCartes
     
        End Function
    Une idée?

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si tu passes par wmi code creator tu peux voir ce que retourne les requetes wmi et tu peux obtenir le code qui va avec
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Ok merci j'ai fini par trouver ma baitise! :-)

    j'ai pas envie de dire que j'ai été con sur ce coup mais bon... ;-)

    Voila la solution pour ceux que cela intéraissent


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Function getIPs() As Object
            Dim moOS As ManagementObjectSearcher
            Dim reponse(0) As String
            Dim i As Integer = 0
     
            Try
                moOS = New ManagementObjectSearcher("SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE Description = '" & AdapateurReseau & "'")
            Catch ex As Exception
                moOS = Nothing
            End Try
     
            If moOS Is Nothing Then
                Return moOS
            End If
     
            For Each moIP As ManagementObject In moOS.Get
                ReDim Preserve reponse(i + 1)
                reponse = moIP("IPAddress")
                i += 1
            Next
     
            Return reponse
        End Function
    Merci et a bientôt :-)

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    redim preserve c'est interdit de nos jours ^^

    utilise plutot un list(of ) qui permet de faire des .add
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    ok pas faux... merci

  8. #8
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    il n'y a pas besoin de wmi pour connaitre les ips du poste, dans system.net il y a ce qu'il faut (dns quelque chose la classe)
    Pour ceux qui voient ce topic et ne passe pas obligatoirement par Wmi : Dns.GetHostEntry retourne une liste d'ip si on lui passe le hostname (effet retro aussi).
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Re,

    Me voici avec un autre problème. :-(
    Me voici avec un problème de tri des arrays retournés.

    En effet,

    Lorsque je récupère mes ip avec la requête précédente et que je fais de même avec les masques de sous-réseaux, ceux-ci ne sont apparemment pas triés de la même façon

    requête de liste d'ip
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE Description = '" & AdapateurReseau & "'
    requete des masques de sous-réseaux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IPSubnet FROM Win32_NetworkAdapterConfiguration WHERE Description = '" & AdapateurReseau & "'
    EXEMPLE:
    Ma config :
    IP1 : 10.0.0.2
    MASQUE1 : 255.255.0.0
    IP2 : 192.168.0.2
    MASQUE2 : 255.255.255.0
    IP3 : 192.168.1.2
    MASQUE3 : 255.255.255.0

    Résultat de requête :
    IP1 : 192.168.0.2
    MASQUE1 : 255.255.0.0
    IP2 : 10.0.0.2
    MASQUE2 : 255.255.255.0
    IP3 : 192.168.1.2
    MASQUE3 : 255.255.255.0

    Avez-vous une idée ou une solution en WMI?

    Merci d'avance :-)

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Re,

    Bon ben autant pour moi, c'est dans le même ordre :-S
    C'est juste qu'après être passé par liste(Of String) puis un toArray(), le tableau se mélangeait... Je ne sais trop pourquoi.

    donc, problème résolu. :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. perdu mes sites favoris avec firefox
    Par StyleXP dans le forum Firefox
    Réponses: 8
    Dernier message: 01/02/2006, 15h06
  2. Réponses: 3
    Dernier message: 19/10/2005, 15h58
  3. problème adresse web avec apache
    Par xlinformatik dans le forum Apache
    Réponses: 4
    Dernier message: 08/09/2005, 18h33
  4. Cherche à lister les adresses IP dispo sur la machine
    Par yukkyyuk dans le forum Windows
    Réponses: 3
    Dernier message: 16/03/2005, 11h50
  5. Mes premiers débuts avec Dev-C++ : ca bloque !
    Par fab56 dans le forum Dev-C++
    Réponses: 6
    Dernier message: 20/02/2005, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo