#!/usr/bin/perl; #use strict; use warnings; use IO::Socket::INET; my $server='192.168.178.6'; my $port='50099'; my $user='monitor'; my $pass='monitor'; $sock = IO::Socket::INET->new(PeerAddr => $server, PeerPort => $port, Proto => 'udp') or die("ERROR open Socket $server:$port ($@)\n"); $sock->autoflush(1); my($in, $buf, $kid, $count); die "fork fail: $!" unless defined($kid = fork); if ($kid) { print $sock "login monitor monitor"; select(undef, undef, undef, 0.5); #sleep 0.5s print $sock "log on"; select(undef, undef, undef, 0.5); print $sock "status"; while(1) { print $sock "log on"; sleep(10); }; # kill the child process #kill(TERM => $kid); } else { while(1) { $buf = <$sock>; print $buf; if ($buf =~ m/.*Nat.*/) { $count++; print "Count $count"; }; }; close $sock; }