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 :

Informations réseau et WMI


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 90
    Par défaut Informations réseau et WMI
    Bonjour à tous,

    J'ai fait plusieurs recherche sur plusieurs site internet et j'ai un problème récurrent entre VB.Net et WMI.

    Ce que j'essaye d'obtenir, ce sont les informations réseau (Adresse IP, DNS, Passerelle...) de la machine locale. Tout fonctionne correctement grace à WMI sauf dans certains cas pour la passerelle. Si je suis connecté en RJ45, j'arrive à obtenir la passerelle mais si je suis en Wifi, j'obtiens une erreur de valeur null. Alors que si je passe par un script vbs, j'arrive à obtenir toutes les informations dans tous les cas !

    Voici mon code VB.Net (Les variables commençant par '_' sont des variables privés de ma classe) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim searcher As ManagementObjectSearcher
    searcher = New ManagementObjectSearcher("root\CIMV2", "SELECT IPAddress,DHCPServer,DNSServerSearchOrder,Description,DefaultIPGateway FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
    For Each queryObj As ManagementObject In searcher.Get()
        sAdresse = queryObj("IPAddress").GetValue(0).ToString()
        If sAdresse.StartsWith(StartsWith) Then
            _AdresseIP = sAdresse
            _ServeurDHCP = queryObj("DHCPServer")
            _CarteReseau = queryObj("Description").ToString
            _Passerelle = queryObj("DefaultIPGateway").GetValue(0).ToString
            _ServeurDNS = queryObj("DNSServerSearchOrder").GetValue(0).ToString()
            Exit For
        End If
    Next
    Voici mon code VBS :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    On error resume next 
    set IPConfigSet = GetObject("winmgmts:{impersonationLevel=impersonate}!//").ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE") 
    If Err.Number<>0 Then 
    	wscript.echo " - non accessible -" 
    Else 
    for each IPConfig in IPConfigSet 
     
    	BailObtenu = IPConfig.DHCPLeaseObtained
    	BailExpirant = IPConfig.DHCPLeaseExpires
     
    	'---- Convertion des date et heure d'obtention et d'expiration des baux DHCP en un format lisible par l'utilisateur. ----
    	BailObtenu = mid(BailObtenu, 7, 2) & "/" & mid(BailObtenu, 5, 2) & "/" & mid(BailObtenu, 1, 4) & " - " & mid(BailObtenu, 9, 2)& ":" & mid(BailObtenu, 11, 2)& ":" & mid(BailObtenu, 13, 2)
    	BailExpirant = mid(BailExpirant, 7, 2) & "/" & mid(BailExpirant, 5, 2) & "/" & mid(BailExpirant, 1, 4) & " - " & mid(BailExpirant, 9, 2)& ":" & mid(BailExpirant, 11, 2)& ":" & mid(BailExpirant, 13, 2)
     
    	MsgBox " Configuration réseau de l'ordinateur " & ComputerName & vbcrlf & vbcrlf & _ 
    		" Nom Machine " & vbtab & " : " & IPConfig.DNSHostName & vbcrlf & vbcrlf & _ 
    		" Carte " & vbtab & vbtab & " : " & IPConfig.Description & vbcrlf & _ 
    		" adresse MAC " & vbtab & " : " & IPConfig.MACAddress & vbcrlf & _ 
    		" DHCP Activé" & vbtab & " : " & IPConfig.DHCPEnabled & vbcrlf & _
    		" adresse IP " & vbtab & " : " & IPConfig.IPAddress(0) & vbcrlf & _
    		" Masque " & vbtab & vbtab & " : " & IPConfig.IPSubnet(0) & vbcrlf & _
    		" passerelle " & vbtab & " : " & IPConfig.DefaultIPGateway(0) & vbcrlf & _ 	
    		" Serveur DHCP " & vbtab & " : " & IPConfig.DHCPServer & vbcrlf & vbcrlf & _
    		" Serveur DNS " & vbtab & " : " & IPConfig.DNSServerSearchOrder(0) & vbcrlf & _
    		"             " & vbtab & vbtab & " : " & IPConfig.DNSServerSearchOrder(1) & vbcrlf & _
    		" Serveur WINS " & vbtab & " : " & IPConfig.WINSPrimaryServer(0) & vbcrlf & _
    		"             " & vbtab & vbtab & " : " & IPConfig.WINSSecondaryServer(0) & vbcrlf & vbcrlf & _
    		" Bail obtenu " & vbtab & " : " & BailObtenu & vbcrlf & _
    		" Bail expirant " & vbtab & " : " & BailExpirant _          		  
    		,,"Configuration  " 
         Next 
    End If
    Alors, savez-vous pourquoi celà ne fonctionne pas avec mon code .Net ?
    Merci à tous de l'aide que vous saurez m'apporter.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 90
    Par défaut Ma solution
    Salut,

    Finalement, apres quelques recherches supplémentaires, je vous livre la solution que j'ai trouvé :
    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
    Dim searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE")
    For Each queryObj As ManagementObject In searcher.Get()
    sAdresse = queryObj("IPAddress").GetValue(0).ToString()
    If sAdresse.StartsWith(StartsWith) Then
        _AdresseIP = sAdresse
        _CarteReseau = queryObj("Description")
        _ServeurDHCP = queryObj("DHCPServer")
        If queryObj("DefaultIPGateway") Is Nothing Then
    	_Passerelle = queryObj("DefaultIPGateway")
        Else
    	Dim arrDefaultIPGateway As String()
    	arrDefaultIPGateway = queryObj("DefaultIPGateway")
    	For Each arrValue As String In arrDefaultIPGateway
    	    _Passerelle = arrValue
    	Next
        End If
    End If
    Next
    J'espère que ca pourras servir à quelqu'un...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Par défaut
    Qu'elle est le type des variables de ta classe commençant par "_" ?

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

Discussions similaires

  1. Lecture des informations réseau
    Par fainardi83 dans le forum Réseau
    Réponses: 0
    Dernier message: 06/08/2012, 12h13
  2. Interrogation réseau via WMI
    Par RomainDotNet dans le forum VB.NET
    Réponses: 4
    Dernier message: 20/06/2008, 14h42
  3. Récupérer des informations sur les connexions réseau
    Par Leobaillard dans le forum Delphi
    Réponses: 8
    Dernier message: 31/08/2006, 01h20
  4. Récupérer des Informations sur un PC via un Réseau ?
    Par MaTHieU_ dans le forum Administration
    Réponses: 6
    Dernier message: 22/11/2005, 12h39

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