1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : août 2013
    Messages : 5
    Points : 3
    Points
    3

    Par défaut Obtenir adresse IP en en fonction de la carte réseau

    Bonjour à tous,

    alors voici un petit code vbs qui me donne le "name" d'une carte réseau en fonction de son NetConnectionId. et stock le résultat dans une variable :

    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
     
    Option Explicit
     
    Dim objWMIService, colItemsnet, objItem, strNetworkAddress, Name, MACAddress
     
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
    Set colItemsnet = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter Where NetConnectionId = 'Connexion réseau sans fil'")
     
    For Each objItem in colItemsnet
     
        If (objItem.NetEnabled = True) Or (objItem.NetEnabled = False) Then 
     
            Name = objItem.Name
            Wscript.Echo Name
     
        End If
     
    Next
    je souhaiterai réutiliser cette variable dans une autre commande pour récupérer cette fois ci l'adresse IP de cette carte. Mais je n'y arrive pas.

    j'ai tenté de faire comme ceci mais cela ne fonctionne pas :

    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
    33
     
    Option Explicit
     
    Dim objWMIService, colItemsnet, objItem, strNetworkAddress, Name, MACAddress
     
     
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
    Set colItemsnet = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter Where NetConnectionId = 'Connexion réseau sans fil'")
     
    For Each objItem in colItemsnet
     
        If (objItem.NetEnabled = True) Or (objItem.NetEnabled = False) Then 
     
            Name = objItem.Name
            Wscript.Echo Name
     
        End If
     
    Next
     
    Dim myIPAddressWIFI, objWMIServ, colAdapters, objAdapter
     
    Set colAdapters = objWMIServ.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where Description = name")
     
    For Each objAdapter in colAdapters
     
      myIPAddressWIFI = objAdapter.IPAddress
     
      exit for
     
    Next
     
        Wscript.Echo myIPAddressWIFI
    Si l'un d'entre vous à une idée s'il vous plait je suis preneur.

    Merci d'avoir pris le temps de me lire.

    Cordialement,

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    juin 2009
    Messages
    3 432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : juin 2009
    Messages : 3 432
    Points : 8 269
    Points
    8 269

    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled = True")
    For Each objItem In colItems
      strIPAddress = objItem.IPAddress(0)
      MsgBox "IP = " & strIPAddress,vbInformation,strIPAddress 
    Next

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : août 2013
    Messages : 5
    Points : 3
    Points
    3

    Par défaut

    Merci d'avoir pris le temps de me répondre.

    Ton code fonctionne parfaitement, il m'affiche bien l'adresse IP, mais si j'ai deux cartes branchées comme ethernet et wifi en même temps j'ai les deux adresses IP.

    Ce que je souhaites c'est filtrer sur les carte Wifi par exemple, je met donc "NetConnectionId" de Win32_NetworkAdapter dans une variable et je souhaiterai réutiliser cette variable dans Win32_NetworkAdapterConfiguration qui correspond à "Description".

    Comme ça j'ai l'adresse Ip de la carte wifi seulement même si la carte Ethernet est branché et vice versa.

    Si je suis pas assez clair hésitez pas.

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : août 2013
    Messages : 5
    Points : 3
    Points
    3

    Par défaut

    Bon j'ai trouvé en filtrant sur l'index qui apparemment est identique sur tous les PC 11 pour la wifi et 7 pour l'ethernet avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim strComputer, objWMIService, colItems, strIPAddressEth, objItem
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration Where Index = '11' AND IPEnabled = True")
    For Each objItem In colItems
      strIPAddressEth = objItem.IPAddress(0) 
    Next
     
     
    	Wscript.Echo strIPAddressEth
    Par contre quand la carte réseau n'est pas connecté j'ai un message vide.

    Je n'arrive pas à trouve la syntaxe pour mettre une condition qui ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if IsNull (objItem.IPAddress) then  wscript.echo "La carte wifi n'est pas connecté"
    Une idée ?

  5. #5
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 264
    Points : 8 933
    Points
    8 933

    Par défaut

    Salut

    Essais de voir quel type est vraiment renvoyé, TypeName(objItem.IPAddress)
    Ou bien cette condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TypeName(objItem.IPAddress) = "Empty" Or  TypeName(objItem.IPAddress)="Null" Then  wscript.echo "La carte wifi n'est pas connecté"
    Ou bien modifies ta condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if IsNull(objItem.IPAddress) Or IsEmpty(objItem.IPAddress) then  wscript.echo "La carte wifi n'est pas connecté"
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : août 2013
    Messages : 5
    Points : 3
    Points
    3

    Par défaut

    J'ai trouvé en utilisant If-Else :

    Voici mon code si cela en intéresse certain:

    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
     
    Dim strComputer, objWMIService, colItems, strIPAddressEth, objItem, IPEnabled
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration Where Index = '7' AND IPEnabled = True")
    For Each objItem In colItems
    	strIPAddressEth = objItem.IPAddress(0)
    	IPEnabled = objItem.IPEnabled
    Next
    	If IPEnabled = "" Then
    		Wscript.Echo "La carte réseau Ethernet n'est pas connecté"
    	Else
    		Wscript.Echo strIPAddressEth
    	End If

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

Discussions similaires

  1. obtenir adresse web
    Par Sharpy dans le forum C#
    Réponses: 4
    Dernier message: 10/11/2007, 21h05
  2. Obtenir le nom de la fonction en cours
    Par vilcoy dans le forum VB.NET
    Réponses: 2
    Dernier message: 12/03/2007, 16h42
  3. Adresse memoire d'une fonction
    Par Hitchigo dans le forum Delphi
    Réponses: 5
    Dernier message: 30/07/2006, 13h37
  4. obtenir adresse ip (generale)
    Par alex01pernot dans le forum Langage
    Réponses: 5
    Dernier message: 27/03/2006, 19h26
  5. [Mail] Masquer l'adresse mail dans la fonction mail(...)
    Par almur31 dans le forum Fonctions
    Réponses: 5
    Dernier message: 27/03/2006, 13h06

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