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

Windows Discussion :

Batch qui ping toutes les machines d'un réseau.


Sujet :

Windows

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Batch qui ping toutes les machines d'un réseau.
    Bonjour,

    Je travaille actuellement sur un réseau local en DHCP.

    Je dois accéder à des machines à distance (OS : Win NT), mais je n'y ai pas accès directement (pas de clavier souris). J'aimerais donc récupérer facilement leur IP de mon poste, connaissant leur nom. J'ai installé VNC au préalable sur les machines.

    Le réseau s'étend de l'ip de X.Y.Z.0 à X.Y.Z.127, et j'aimerais pinguer toutes les machines, et :
    dans l'idéal récupérer la liste nom / ip
    sinon juste les ip que je peux pinguer, ainsi, ayant le mot de passe VNC je peux m'y connecter une à une, mais seulement sur les ip actives.

    Je pensais donc à un petit batch DOS qui fait un truc du genre :

    ip_init = X.Y.Z.0
    nb_postes = 128
    for i = 0 to 127
    ping "X.Y.Z." + i
    return ???
    next i

    mais je n'ai pas de connaissance en prog DOS...

    J'espère que vous pourrez m'aider.

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Salut,

    si je résume on peut décomposer ton problème suivant les points :

    (1) Faire une boucle en batch qui liste les IP de X.Y.Z.0 à X.Y.Z.127
    (2) Traiter un ping pour récupérer l'information qui t'intéresse

    Quelle information souhaites-tu extraire du dump d'un ping ?

    Réponse de 127.0.0.1 : octets=32 temps<1ms TTL=128
    Réponse de 127.0.0.1 : octets=32 temps<1ms TTL=128

    Statistiques Ping pour 127.0.0.1:
    Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
    Durée approximative des boucles en millisecondes :
    Minimum = 0ms, Maximum = 0ms, Moyenne = 0ms
    Karl.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Karl,

    Merci de te pencher sur mon problème.

    Dans la mesure où ce que je veux c'est voir les ip utilisées au moment du lancement de batch, je pense qu'on peut utliser l'information de % perdus.

    Si 0% de perdus -> c'est OK.

    Ensuite je ne sais pas s'il existe une commande qui puisse faire le lien entre l'ip et le nom de la machine, pour avoir un resultat du genre :

    X.Y.Z.12 Machine1
    X.Y.Z.16 Machine2
    ...
    X.Y.Z.85 Machine3
    etc.

    J'espère avoir été clair,

    Encore merci.



    Citation Envoyé par karl3i
    Salut,

    si je résume on peut décomposer ton problème suivant les points :

    (1) Faire une boucle en batch qui liste les IP de X.Y.Z.0 à X.Y.Z.127
    (2) Traiter un ping pour récupérer l'information qui t'intéresse

    Quelle information souhaites-tu extraire du dump d'un ping ?



    Karl.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 336
    Points : 341
    Points
    341
    Par défaut
    Pour la jointure avec le nom du PC, tu peux faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ECHO OFF
    FOR /F "tokens=6,7 delims= " %%A IN ('PING -a %1') DO IF "%%B"=="[%1]" SET PC=%%A
    echo %PC%
    Tu nommes par exemple ce batch "findpcname.bat" et tu l'appelle de cette manière : findpcname 127.0.0.1 (cet exemple donne le nom de la machine locale) .


    Le principe du code : avec délimitateur comme espace, je cherche le 6ème élément (stocké dans la variable A) et le 7ème élément (stocké dans la variable B).
    Le 7ème élément correspondant à l'adresse IP, la vérification de l'égalité permet de me positionner à la bonne ligne du dump.
    Du coup, je sais que le 6ème élément de cette ligne est le nom de la machine.


    Sur le même modèle (analyse de la ligne, compter le nombre de tokens) tu peux récupérer la valeur de % perdu.

    Tes messages DOS sont bien en français ? Je me suis basé sur la réponse de la commande en français.Si c'est en anglais, il faudra réétudier le parsage.

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/01/2017, 19h48
  2. [C#] Application qui tourne toutes les nuits
    Par Rodie dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/10/2006, 14h54
  3. script ping toutes les 5 minutes
    Par suya95 dans le forum Programmation et administration système
    Réponses: 13
    Dernier message: 03/10/2006, 13h45
  4. Checkbox qui coche toutes les autres!
    Par myomyo dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 30/05/2006, 13h59
  5. Réponses: 9
    Dernier message: 07/05/2003, 12h57

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