Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1225 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Edit : Script Test ping (encore)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Edit : Script Test ping (encore)

n°1581237
Ming75
Posté le 26-06-2007 à 16:41:13  profilanswer
 

Bonjour  :hello:  
Je tourne sous Debian et j'aimerai  
faire un petit script qui ping certaine IP particuliere sur le reseau local et selon la reponse du ping j'execute un script ou une commande si le ping est positif ou je ping l'IP suivante si le ping serai négatif.
Si quelqu'un pourrait m'aider...  :whistle:  
Merci
 
Edit : Mon script avec les if marche parfaitement mais c'est pas evolutif du tout.
J'aimerai faire un

for i de [IP de depart] a [IP de fin]


Enfin je sais pas si c'est possible
 :hello:


Message édité par Ming75 le 29-06-2007 à 16:42:45
mood
Publicité
Posté le 26-06-2007 à 16:41:13  profilanswer
 

n°1581238
_p1c0_
Posté le 26-06-2007 à 16:44:06  profilanswer
 

tu dois pouvoir t'en sortir en testant la valeur de $? après le ping.
 


---------------
-_- http://www.scienceshopping.com -_-
n°1581239
memaster
ki a volé mon 62?
Posté le 26-06-2007 à 16:54:49  profilanswer
 

un p'ti grep cut dans un fichier temporaire de la sortie de ping
ping ip -c 1 > toto.txt

 

if toto.txt
$tavariable = `grep cut +parametreskibontbien toto.txt`
if tavariable == test
tacommande
else
tonautrecommande
fi
fi


Message édité par memaster le 26-06-2007 à 16:55:23

---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
n°1581240
black_lord
Truth speaks from peacefulness
Posté le 26-06-2007 à 17:02:29  profilanswer
 

memaster a écrit :

un p'ti grep cut dans un fichier temporaire de la sortie de ping
ping ip -c 1 > toto.txt
 
if toto.txt
$tavariable = `grep cut +parametreskibontbien toto.txt`
if tavariable == test
tacommande
else
tonautrecommande
fi
fi


 
[:vomi]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1581241
memaster
ki a volé mon 62?
Posté le 26-06-2007 à 17:03:46  profilanswer
 


ct vite fait :o
il y a surement d'autres moyens plus "elegants"


Message édité par memaster le 26-06-2007 à 17:04:23

---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
n°1581242
l0ky
Posté le 26-06-2007 à 17:12:13  profilanswer
 

Les codes de retour c'est pas fait pour les chiens non plus.
C'est quoi l'utilité de sortir des grep/cut pour vérifier que la commande a échoué ou réussi alors qu'il y a un mécanisme conçu pour cela?


Message édité par l0ky le 26-06-2007 à 17:13:13
n°1581243
black_lord
Truth speaks from peacefulness
Posté le 26-06-2007 à 17:13:31  profilanswer
 

j'ai un truc un peu crade en python aussi :

Code :
  1. import os
  2. import re
  3. import time
  4. import sys
  5. lifeline = re.compile(r"(\d) received" )
  6. report = ("No response","Partial Response","Alive" )
  7. print time.ctime()
  8. for host in range(1,255):
  9.    ip = "192.168.0."+str(host)
  10.    pingaling = os.popen("ping -q -c2 "+ip,"r" )
  11.    print "Testing ",ip,
  12.    sys.stdout.flush()
  13.    while 1:
  14.       line = pingaling.readline()
  15.       if not line: break
  16.       igot = re.findall(lifeline,line)
  17.       if igot:
  18.            print report[int(igot[0])]
  19. print time.ctime()


Message édité par black_lord le 26-06-2007 à 17:14:09

---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1581244
l0ky
Posté le 26-06-2007 à 17:14:09  profilanswer
 

faut fermer les balises [:cerveau dawa]

n°1581245
black_lord
Truth speaks from peacefulness
Posté le 26-06-2007 à 17:14:38  profilanswer
 

hého [:cerveau o]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1581246
mikala
Souviens toi du 5 Novembre...
Posté le 26-06-2007 à 17:17:26  profilanswer
 

a mon avis il vaudrait mieux coder la chose en ruby.


---------------
Intermittent du GNU
mood
Publicité
Posté le 26-06-2007 à 17:17:26  profilanswer
 

n°1581247
Taz
bisounours-codeur
Posté le 26-06-2007 à 17:50:41  profilanswer
 

fping / smokeping / snmp


Message édité par Taz le 26-06-2007 à 17:51:02
n°1581248
nayfe
Posté le 26-06-2007 à 18:04:14  profilanswer
 

moi j'laime bien ton truc memaster62 :D
 
#!/bin/bash
 
ip="192.168.0.1"
loss="50"
ipcount="10"
 
if [ `ping -c $ipcount $ip | grep loss | sed s/%.*//g | sed s/.*,\ //g` -gt $loss ]
then
    echo "Error"
else
    echo "Ok"
fi

n°1581249
memaster
ki a volé mon 62?
Posté le 26-06-2007 à 18:09:32  profilanswer
 

nayfe a écrit :

moi j'laime bien ton truc memaster62 :D
 
#!/bin/bash
 
ip="192.168.0.1"
loss="50"
ipcount="10"
 
if [ `ping -c $ipcount $ip | grep loss | sed s/%.*//g | sed s/.*,\ //g` -gt $loss ]
then
    echo "Error"
else
    echo "Ok"
fi


belle [expression reguliere] ;)


---------------
ma conduite intérieure .:R | memaster pilote officiel de la HFR Badoit-Auchan F1 Team | zéro tracas, zéro blabla MMa.ster
n°1581250
l0ky
Posté le 26-06-2007 à 18:15:45  profilanswer
 

nayfe a écrit :

moi j'laime bien ton truc memaster62 :D

 

#!/bin/sh
if ping -c 1 127.0.0.1 > /dev/null ; then
 echo success
else
 echo failed
fi


est beaucoup plus propre, et on ne peut plus simple


Message édité par l0ky le 26-06-2007 à 18:24:16
n°1581251
Ming75
Posté le 26-06-2007 à 18:39:34  profilanswer
 

Merci a tous pour votre aide en tout cas.
et j'ai bien ce script  :)  

l0ky a écrit :

#!/bin/sh
if ping -c 1 127.0.0.1 > /dev/null ; then
 echo success
else
 echo failed
fi


est beaucoup plus propre, et on ne peut plus simple


 
Il me reste plus qu'a greffer autour :)
En tout cas ça l'air de bien marcher mais j'ai une question si la machine mets un peu de temps a repondre au ping ca pose un probleme ?
 
 :hello:  

n°1581252
nayfe
Posté le 26-06-2007 à 18:42:52  profilanswer
 

ça dépend si tu atteinds le timeout du ping :o
 
sinon en mettant -c 2 par exemple, même si le premier essai atteind le timeout et que le deuxième ne l'atteind pas, ça renvoit quoi comme code de retour?


Message édité par nayfe le 26-06-2007 à 18:45:34
n°1581253
l0ky
Posté le 26-06-2007 à 18:43:03  profilanswer
 

par défaut il y a un timeout de quelques secondes, ca suffit largement. Tu peux le fixer avec l'option  W


Message édité par l0ky le 26-06-2007 à 18:43:12
n°1581254
Ming75
Posté le 26-06-2007 à 18:43:56  profilanswer
 

Ok, merci :D

n°1581255
Profil sup​primé
Posté le 30-06-2007 à 15:58:07  answer
 

Pourquoi tout simplement pas faire un ping broadcast ?  :whistle:

n°1581256
l0ky
Posté le 30-06-2007 à 17:58:35  profilanswer
 


Parce que ca répond pas du tout à la question ?


Message édité par l0ky le 30-06-2007 à 17:58:51
n°1581257
molmock
Rythm is love ....
Posté le 30-06-2007 à 18:21:29  profilanswer
 

c'est quoi la commande pour un ping brodcast ?

 

Edit : question conne que je retire :d


Message édité par molmock le 30-06-2007 à 18:23:29
n°1581258
Profil sup​primé
Posté le 30-06-2007 à 19:31:27  answer
 

l0ky a écrit :

Parce que ca répond pas du tout à la question ?


 
bah il veut ping des adresses ip et passer a la suivante si ca repond ou pas , un ping broadcast donnera les memes resultat , apres selon la reponse ou pas il execute une commande

n°1581259
l0ky
Posté le 01-07-2007 à 10:36:48  profilanswer
 

1. Certains équipements sont configurés pour ne pas répondre au ping broadcast alors qu'ils répondent parfaitement au ping unicast.
2. Si il existe un routeur entre toi et tes équipements sous test, ton ping broadcast marchera autant qu'un pingouin dans le sahara en plein été.


Message édité par l0ky le 01-07-2007 à 10:39:32
n°1581260
Ming75
Posté le 01-07-2007 à 15:47:57  profilanswer
 

En fait j'aimerai aovir la syntaxe correct pour bash car je suis encore debutant :s
 
j'avais penser a faire un truc comme ca sans connaitre la quel syntaxe je dois ecrire :


a=10
b=50
for i de 192.168.0.$a à 192.168.0.$b
 if ping -c 1 192.168.0.$a > /dev/null ; then
   echo "le ping repond, ping sur IP suivante"
 else
   J'execute mes scripts.



Message édité par Ming75 le 01-07-2007 à 15:48:14
n°1581261
mikala
Souviens toi du 5 Novembre...
Posté le 01-07-2007 à 16:07:47  profilanswer
 

bon je vais transférer dans programmation là [:cerveau o]


---------------
Intermittent du GNU
n°1581262
nayfe
Posté le 01-07-2007 à 17:30:55  profilanswer
 

#!/bin/bash
 
ips="192.168.0.1 192.168.0.101 192.168.0.102"
 
for i in $ips
do
        if ping -c 1 $i > /dev/null ; then
                echo "$i : Success"
        else
                echo "$i : Failed"
        fi
done

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Edit : Script Test ping (encore)

 

Sujets relatifs
[résolu]Une balise script qui empêche tout affichage dans IE1er script Perl taille d'un tableau
Test ip dans un réseaulancer un script d'un serveur extèrieur
Mysql : script avec tables en majuscules --> tables crées en minusculescript saisie par DOS
PING .BAT AVEC DATE ET HEUREQu'est ce qui est le plus rapide à charger entre un script PHP ou...
script saisie par DOSScript qui vérifie qu'un process ne tourne pas deux fois en meme temps
Plus de sujets relatifs à : Edit : Script Test ping (encore)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR