GNT sans publicité, site mobile, fonctionnalitées exclusives...

[VBScript] Savoir si on communique sur une carte Wireless ou ether

Le
SebD
Bonjour

Je cherche à savoir si mon pc communique par ethernet ou par wireless (je
mets à part les questions de routage et de metric). Je cherche à savoir si
soit l'interface ethernet est montée et opérationnelle (adresse ip valide)
ou si c'est l'interface wireless qui est montée.

Pour l'instant, j'ai suivi plusieurs pistes

Par WMI
Code:

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "oot\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM
Win32_NetworkAdapter", "WQL", _
wbemFlagReturnImmediately +
wbemFlagForwardOnly)

For Each objItem In colItems
' detection du type de carte
If objItem.NetConnectionStatus = 2 Or objItem.NetConnectionStatus = 7 Then
TypeCarte = ""
Select Case objItem.AdapterType
Case "Wireless"
TypeCarte = "Wireless"
Case "Ethernet 802.3"
If InStr(LCase(objItem.ProductName), "wireless") <> 0 Then
TypeCarte = "Wireless"
End If
If InStr(LCase(objItem.ProductName), "ethernet") <> 0 Then
TypeCarte = "Ethernet"
End If
End Select
If TypeCarte = "Ethernet" Then
Ethernetconnected = 1
End If
If TypeCarte = "Wireless" Then
WirelessConnected = 1
End If
End If
Next

If Ethernetconnected = 1 Then
List1.AddItem ("Reseau Ethernet détecté")
End If
If WirelessConnected = 1 Then
List1.AddItem ("Reseau sans fil détecté")
End If
If Ethernetconnected = 1 Then
List1.AddItem ("Reseau Ethernet selectionné")
Else
If WirelessConnected = 1 Then
List1.AddItem ("Reseau sans fil selectionné")
Else
List1.AddItem ("Reseau non détecté")
End If
End If


Le soucis est que objItem.AdapterType est toujours positioné à "Ethernet
802.3" même pour une carte Wireless et pour une carte 1394
Je fais donc la distinction avec le nom de la carte, s'il y a "wireless" ou
"ethernet" dans le nom. Mais ce truc ne marche pas.

J'ai essaye avec netsh
netsh
diag
ping ip
ca ne marche pas non plus

Savez-vous à quel endroit je peux trouver l'information, dans "propriétés
des favoris réseaux" on voit bien la distinction entre "Connexion au réseau
local" et "Connexion sans fil".

Pour info, mon programme doit pouvoir marcher dans plusieurs langues

Cordialement

SebD
Lire les 8 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel Claveau
Le #542767
Bonjour !

Une solution en invite de commande (ou batch) :
netsh diag show ip

Astuce : après avoir tapé la ligne, ne pas oublier :
- d'appuyer sur la touche [Entrée]
- de lire le résultat

;o)

--
@-salutations

Michel Claveau
Méta-MCI
Le #542765
Re

Et voici, ci-dessous, la même chose, en VBS.

Vous remarqurez que le VBS est 18 fois plus gros (nb de lignes) que le
batch.

CQFD

MCI




Dim ipadapter
Dim shell
Dim commande
dim exec
dim resultat

if wscript.Arguments.Count then
message = "inutile d'utiliser des arguments ou paramètres"
msgbox message
end if

commande="netsh diag show ip"
Set shell = wscript.createobject("WScript.Shell")
Set exec = shell.exec(commande)
resultat = exec.Stdout.ReadLine
resultat = exec.Stdout.ReadLine
resultat = resultat & exec.Stdout.ReadLine
rem la ligne ci-dessous, facultative, donne aussi l'adresse IP
rem resultat = resultat & vbCrLf & exec.Stdout.ReadLine
msgbox(resultat)
SebD
Le #542552
Merci pour votre réponse

Malheureusement, dans les cartes réseaux qu'ils affichent, je ne sais pas si
ce sont des cartes qui communiquent par WIFI ou par ethernet

A+

SebD


Bonjour !

Une solution en invite de commande (ou batch) :
netsh diag show ip

Astuce : après avoir tapé la ligne, ne pas oublier :
- d'appuyer sur la touche [Entrée]
- de lire le résultat

;o)

--
@-salutations

Michel Claveau





Méta-MCI
Le #542551
Re

Sur 3 machines, j'ai l'indication 802.11g ou 801.11b ou 802.11

Mais, effectivement, ce n'est pas généralisable. Ceci dit, netsh peut donner
beaucoup d'informations ; peut-être y en a t'il une qui conviendrait ?
Faire "netsh ?" pour avoir plus de détails (et "netsh XXX ?")

@+

MCI
SebD
Le #542550
Merci pour toutes vos réponses

C'est vraiment un problème de savoir comment fait windows pour savoir si une
carte réseau doit etre appele "connexion au réseau local xx" au "connexion
réseau sans fil"

Est-ce que c'est dans le driver de la carte ? dans ce cas, où l'information
est-elle stockée ensuite ?

Connaissez-vous des forums plus spécialisés de ce domaine ?

Pour Méta-MCI

A quel niveau tu as vu 802.11g
Avec la commande "netsh diag show ip"
Le nom de la carte est "Intel(R) PRO/Wireless 2200BG Network Connection"

A+

Sebd


Re

Sur 3 machines, j'ai l'indication 802.11g ou 801.11b ou 802.11

Mais, effectivement, ce n'est pas généralisable. Ceci dit, netsh peut donner
beaucoup d'informations ; peut-être y en a t'il une qui conviendrait ?
Faire "netsh ?" pour avoir plus de détails (et "netsh XXX ?")

@+

MCI





Publicité
Suivre les réponses
Poster une réponse
Anonyme