OVH Cloud OVH Cloud

recherche petit exemple perl

4 réponses
Avatar
Miriame Sinclot
Bonjour,

Quelqu'un aurait un petit exemple d'une code perl qui permet :

de faire un ping sur une ip donne.
Si ping ok => execute une action
Si ping pas ok => execute une autre action

merci d'avance pour votre aide

4 réponses

Avatar
Paul Gaborit
À (at) Wed, 5 Jan 2005 11:53:04 +0100,
"Miriame Sinclot" écrivait (wrote):
Quelqu'un aurait un petit exemple d'une code perl qui permet :

de faire un ping sur une ip donne.
Si ping ok => execute une action
Si ping pas ok => execute une autre action



use Net::Ping;

my $host = "www.google.com";

my $p = Net::Ping->new();
if $p->ping($host) {
print "$host ok.n"
} else {
print "$host pas ok.n"
}
$p->close();


--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>

Avatar
Delf

use Net::Ping;
[...]


Salut.

J'ai déjà utilisé ce module mais si le service pppoe est coupé, on
obtient le message suivant :

# [ ~]# ./adsl-test.pl
# tcp connect error - Le réseau n'est pas accessible. at ./adsl-test.pl
line 17

Ne peut-on pas avoir 'false' (ou équivalent) à la place ?
Au pire, je vérifie que le processus pppoe est actif...
Merci.

--
Delf

Avatar
Paul Gaborit
À (at) Wed, 05 Jan 2005 14:30:19 +0100,
Delf écrivait (wrote):
J'ai déjà utilisé ce module mais si le service pppoe est coupé, on obtient le
message suivant :

# [ ~]# ./adsl-test.pl
# tcp connect error - Le réseau n'est pas accessible. at ./adsl-test.pl line 17

Ne peut-on pas avoir 'false' (ou équivalent) à la place ?


Il suffit d'enrober tout cela par un eval :

use Net::Ping;

eval {
my $host = "www.google.com";
my $p = Net::Ping->new();
if $p->ping($host) {
print "$host ok.n"
} else {
print "$host pas ok.n"
}
$p->close();
};
if ($@) {
# y'a une erreur
print "$@n"
}

Il y a bien trois cas différents (les trois print) :
1 - le site distant répond
2 - le site distant ne répond pas
3 - on ne peut pas savoir car il y a eu une erreur interne

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>

Avatar
Delf

Il suffit d'enrober tout cela par un eval :


Merci bien.

--
Delf