in reply to Re: Ping and Tracert
in thread Ping and Tracert

It will run on both Solaris and Linux. Any suggestions?

Thanks.

qball~"I have node idea?!"

Replies are listed 'Best First'.
Re: Re: Re: Ping and Tracert
by tachyon (Chancellor) on Aug 31, 2001 at 22:20 UTC

    Run ping, generate some output and then I will suggest a regex for you to capture the max. This runs under Win32. The output is after the __DATA__ - you can see the output of ping which puts the regex into perspective.

    $ip = 'www.perlmonks.com'; $ping = `ping $ip`; @times = $ping =~ m/time=(\d+)ms/g; @times = sort { $b <=> $a } @times; print "High to low @times ms\n"; print "Highest $times[0] ms\n"; print "Lowest $times[-1] ms\n"; print "This was the repy parsed\n$ping\n"; __DATA__ High to low 414 413 408 403 ms Highest 414 ms Lowest 403 ms This was the repy parsed Pinging www.perlmonks.com [206.170.14.76] with 32 bytes of data: Reply from 206.170.14.76: bytes=32 time=408ms TTL=237 Reply from 206.170.14.76: bytes=32 time=413ms TTL=237 Reply from 206.170.14.76: bytes=32 time=414ms TTL=237 Reply from 206.170.14.76: bytes=32 time=403ms TTL=237

    cheers

    tachyon

    s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

      Hey, I'm getting blanks for my times. I'm running the same script, but receiving the following output:
      High to low ms Highest ms Lowest ms

      Thanks.

      qball~"I have node idea?!"

        What text does ping return? On Win32 it returns blah blah blah time=123ms so we match on the "time=123ms" bit. If the ping output format is different (as it will be on *nix) you just need to modify the regex. Post some sample ping output as captured by this sort of call (or whatever you are using) $ping = `ping`; print $ping and it will be easy to munge the times out of the return strings.

        cheers

        tachyon

        s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

Re: Re: Re: Ping and Tracert
by marcus (Scribe) on Aug 31, 2001 at 22:16 UTC
    Well, ping on solaris and linux is quite different :/ I don't think solaris supports getting the max value at all other than interactively. I guess an alternative would be compiling GNU perl on the solaris machine, if you aren't going to distribute to a large number of hosts. There is a Net::Ping::External as well, but unfortunately it doesn't give out any more inforation than Net::Ping does.

    qw[marcus]

Re: Re: Re: Ping and Tracert
by trantor (Chaplain) on Aug 31, 2001 at 23:39 UTC

    Net::Traceroute should do what you need.

    It parses the output of an actual traceroute. I tested it on Linux and it works well. Solaris should work too, the output format is practically the same.

    -- TMTOWTDI