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

Scripts/Batch Discussion :

Détecter si le câble RJ45 est connecté


Sujet :

Scripts/Batch

  1. #1
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 430
    Points
    430
    Par défaut Détecter si le câble RJ45 est connecté
    Bonsoir la cie,

    C'est la première fois que je viens dans cette partie du forum, mais je sèche sur un petit bout de script dans un batch.
    Je dois détecter si la carte Ethernet est connectée afin de par la suite pouvoir modifier les IP, soit de la carte Ethernet, soit de la carte WiFi.

    Le but est de pouvoir switcher de la connexion internet standard (VOO) vers un modem LTE en pont sur les PC du réseau (Câblés ou Wifi).

    Je parviens à détecter :
    - L'IP en DHCP de VOO
    - De détecter si le modem LTE est bien allumé et ne faire le switch qu'alors
    - De modifier les paramètres de connexion avec netsh ... pour l'instant fixé Ethernet

    Le principe est simple, si un câble RJ45 est connecté, je modifie la carte Ethernet, autrement c'est Wifi (par défaut).

    Voici le bout de script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    REM ********** Détetion carte LAN active
    set "$carte=Wi-Fi"
    For /f "tokens=2,* delims=:[]" %%a in ('netsh interface show interface name="Ethernet" ^| FINDSTR "Connecté"') do (
      set "$carte=Ethernet"
    )
    echo %$carte%
    pause
    J'ai déjà modifié les paramètres tokens, delims, ajouté skip=1, find et findstr ...
    Je ne trouve rien sur le net à ce sujet 🤔

    netsh interface show interface name="Ethernet" me donne ceci ... RJ45 bien connecté, mais je reste en Wifi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Ethernet
       Type*:                 Dédié
       État d'administration*: Activé
       État de connexion*:        Connecté
    C'est probablement l'espace entre les " : et Connecté " qui pose problème !?
    Je parviens à trouver l'IP de mon réseau avec ipconfig ... je ne comprend vraiment pas pourquoi ici

    Toute aide est la bienvenue

    @+
    ddaweb

  2. #2
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 430
    Points
    430
    Par défaut
    Je viens de trouver la fonction qui fonctionne bien en mode CMD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netsh interface show interface name="Ethernet" |find "État de connexion" |find "Connecté">nul && echo connected || echo not connected
    Le tout est de trouver la syntaxe pour le batch

  3. #3
    Membre averti Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 329
    Points : 430
    Points
    430
    Par défaut
    Heuuuu, je n'ai pas compris, mais après 3 essais infructueux avec ce code OK en CMD ... une pause et nouvel essais et cela fonctionne

    Voici le code qui fonctionne pour le batch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    REM ********** Détetion carte LAN active ou alors c'est du Wi-Fi
    netsh interface show interface name="Ethernet" |findstr "État de connexion" |findstr "Connect">nul && set "$carte=Ethernet" || set "$carte=Wi-Fi"
    J'ai juste retiré le "é" à connecté et mis findstr au lieu de find au code OK en CMD

    Cela pourra peut-être aider quelqu'un

Discussions similaires

  1. Détecter que la carte réseau est connectée
    Par darkwall_37 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 23/06/2009, 14h27
  2. tester si le câble reseau est connecté
    Par lezurp dans le forum C++
    Réponses: 3
    Dernier message: 19/03/2008, 20h02
  3. Détecter si une souris est connecté...
    Par Foub dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 31/07/2005, 20h41
  4. Réponses: 15
    Dernier message: 27/04/2005, 10h41
  5. [Delphi 6] Comment détecter si un poste est connecté ?
    Par Lung dans le forum Web & réseau
    Réponses: 81
    Dernier message: 22/04/2005, 15h13

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