[RESOLU] Tester si un PC est connecté

Bonjour à toutes et tous!

J’aimerais pouvoir tester si un pc est connecté et lancer un script si c’est le cas.

Je pensais utiliser ping et j’aimerais savoir sur quelle variable le test doit se faire (rien trouvé dans le man).

Ensuite viendra la “mise en script” du genre:

if (résultat du ping) <> valeur attendue then exécute le script else ne fait rien

Mais bon, pour ça, je chercherais de mon côté.

Merci d’avance et bonne journée :slightly_smiling:

EDIT: bon, je pense faire un script ressemblant à ça:

[code]ping 192.168.1.15 >> $connexion

if [ $connexion = … ]
then sh $HOME/monscript
else
fi[/code]

Je ne connais pas encore les valeurs de retour du ping si pc connecté/déconnecté, mais j’essaye ça dès retour chez moi (avec un echo $connexion, par exemple)…

Salut,

Il me semble avoir lu que le plus fiable était de tester si il y a “ttl” dans la réponse, cela indiquant que le pc répond bien, tous les autres cas indiquent qu’il ne répond pas (éteint ou ping interdit…)

Amicalement

man ping :

If ping does not receive any reply packets at all it will exit with code 1. If a packet count and deadline are both specified, and fewer than count packets are received by the time the deadline has arrived, it will also exit with code 1. On other error it exits with code 2. Otherwise it exits with code 0. This makes it possible to use the exit code to see if a host is alive or not.

Je crois que tu as ta réponse :wink:

Merci à vous deux !

C’est marrant j’ai pas vu ça dans la page de man… Il faut dire que je suis allé sur une manpage internet étant sous XP au boulot.

Bref, je n’ai pas suffisemment investigué.

Je me rends également compte que je n’ai pas posté au bon endroit: désolé messieurs les modos :blush:

ping google.fr > /dev/null 2>&1 #Le résultat du ping n’est pas retourné sur l’écran
RETVAL=$? #RETVAL contient le code de retour de la dernière commande lancée (0,1,2 etc…)
if [ $RETVAL -ne 0 ]; then #test si la variable RETVAL est différent de 0. Si Oui, pas bon
echo $(date)":" BAD PING !!!"
else
echo $(date)":" GOOD PING !!!"
fi


#redking galsen :smt006

Pour que ça marche, il ne faut pas que le ping soit “infini” (ce qui est le cas “par défaut” sous 'nux…). Pour la commande ping, il faut ajouter un “-c 1” pour celà… :wink:

ping -c 1 pc-à-tester (...)

ps: y’a un " en trop dans les lignes “echo”… celui juste après les : … :wink:

:smt006

Le ping suppose que la machine réponde, tu peux utiliser arping qui est plus général.

[quote=“fran.b”]Le ping suppose que la machine réponde, tu peux utiliser arping qui est plus général.[/quote]Bien vu… :wink: … mais “on perd” la possibilité d’utiliser le nom de la machine plutôt que son ip, non? (à moins de lancer ça en “root”… en fait je connais pas bien arping… :blush: … j’ai juste fait des tests “vite fait”…)
édit: réflexion idiote concernant le “root” et le nom… je viens de “voir”… logique… pfffff… fatigué le Num’s… :blush: :unamused: :laughing:

Aller, j’arrête de polluer dans “support”… :wink:

:smt006