From 913ad5bd7e32bee46464636ef1a39688e5ca8120 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Wed, 1 Jun 2011 23:44:49 +0200 Subject: Initial commit --- bin/ekgping | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100755 bin/ekgping diff --git a/bin/ekgping b/bin/ekgping new file mode 100755 index 0000000..ec43040 --- /dev/null +++ b/bin/ekgping @@ -0,0 +1,90 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use 5.010; + +use IO::Handle; +use IPC::Run qw(harness); +use Time::HiRes qw(usleep); + +our $VERSION = '0.1'; + +my $host = shift; +my $id = 0; +my $last_id = 0; + +my $harness = harness(['ping', '-n', $host], + '<' => \undef, + '>&' => \&parse_ping_output, +); + +sub parse_ping_output { + my ($line) = @_; + + chomp($line); + + if ($line =~ m{ ^ \d+ \s bytes \s from \s \S+ \s icmp_req = (? \d+ ) }x) { + $id = $+{id}; + } +} + +$harness->start(); + +# Ignore first line +$harness->pump(); + +while(usleep(100_000)) { + + $harness->pump_nb(); + + if ($id != $last_id) { + print '^'; + $last_id = $id; + } + else { + print '_'; + } + + STDOUT->flush(); +} + +$harness->kill_kill( grace => 1 ); + +__END__ + +=head1 NAME + +=head1 SYNOPSIS + +=head1 VERSION + +=head1 DESCRIPTION + +=head1 OPTIONS + +=over + +=back + +=head1 EXIT STATUS + +=head1 CONFIGURATION + +None. + +=head1 DEPENDENCIES + +=over + +=back + +=head1 BUGS AND LIMITATIONS + +=head1 AUTHOR + +Copyright (C) 2011 by Daniel Friesel Ederf@finalrewind.orgE + +=head1 LICENSE + + 0. You just DO WHAT THE FUCK YOU WANT TO. -- cgit v1.2.3