OVH Cloud OVH Cloud

problème de ping

2 réponses
Avatar
kurtz le pirate
bonjour.

continuant mon apprentissage je m'essaye aux réseaux.
j'ai fait ce script :


---
#!/usr/bin/perl
use strict;

use Net::Ping;
use Time::HiRes;


my $h="news.proxad.fr";
my $p = Net::Ping->new();
my $timeOut = 1;

open(N,"dig $h |") || die "$0: Can't exec dig [$!]\n";
while (my $l = <N>) {
if ($l =~ /^$h/) {
$l =~ s/(\d+\.\d+\.\d+\.\d+)//;
(my $ret, my $duration, my $ip) = $p->ping($1,$timeOut);
if ($ret) {
printf "$h ($ip) actif (ping: %.5f ms)\n",1000*$duration
}
else {
print "$h ($ip) non joignable\n";
}
}
}
$p->close();
close(N);
---

ça marche à peu près. par exemple ça retourne :
news.proxad.fr (212.27.42.65) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.66) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.67) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.68) non joignable
news.proxad.fr (212.27.42.69) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.70) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.71) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.72) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.73) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.74) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.75) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.76) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.77) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.78) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.79) actif (ping: 0.00000 ms)
news.proxad.fr (212.27.42.80) actif (ping: 0.00000 ms)

tout les ping sont à zéro alors que si je fait un ping à la main ça
retourne :

$ ping 212.27.42.72
PING 212.27.42.72 (212.27.42.72): 56 data bytes
64 bytes from 212.27.42.72: icmp_seq=0 ttl=53 time=11.678 ms
64 bytes from 212.27.42.72: icmp_seq=1 ttl=53 time=11.081 ms
64 bytes from 212.27.42.72: icmp_seq=2 ttl=53 time=14.575 ms
64 bytes from 212.27.42.72: icmp_seq=3 ttl=53 time=12.369 ms


j'ai faux ou ?
merci de vos lumières.

2 réponses

Avatar
Mathieu Arnold
kurtz le pirate écrivait:
bonjour.

continuant mon apprentissage je m'essaye aux réseaux.
j'ai fait ce script :


Ajoute un $p->hires(); juste apres l'instantation.

En effet, si tu ne lance pas cette méthode, la valeur de duration sera
précise a la seconde, et donc, si ça ping a moins d'une seconde, ça fait 0.

ps : perldoc Net::Ping m'a appris ce que je te dis la
--
Mathieu Arnold

Avatar
kurtz le pirate
In article <42493c35$0$2956$,
Mathieu Arnold <news+ wrote:

kurtz le pirate écrivait:
bonjour.

continuant mon apprentissage je m'essaye aux réseaux.
j'ai fait ce script :


Ajoute un $p->hires(); juste apres l'instantation.

En effet, si tu ne lance pas cette méthode, la valeur de duration sera
précise a la seconde, et donc, si ça ping a moins d'une seconde, ça fait 0.

ps : perldoc Net::Ping m'a appris ce que je te dis la



merci Mathieu !!

perl est vraiment extraordinaire. j'ai fait une autre script en 1/2 heure
qui transforme des fichiers textes... et ça marche !!!

trop cool perl :))