Jugando con perl

Pos mira, para jugar con perl he hecho el siguiente script para ver si unos ciertos equipos estan encendidos o no, y en caso que no lo esten me avisen por email. Tonterías sí :).



#!/usr/bin/perl
use strict;
use warnings;
use Net::Ping;
use Net::SMTP;


my @ap = ("192.168.0.3", "192.168.0.5", "192.168.0.6", "192.168.0.7",
         "192.168.0.8", "192.168.0.9", "192.168.0.10","192.168.0.11");


sub ping {

 my @dead;

 foreach (@_)
 {
    my $p = Net::Ping->new();
    push @dead, $_ unless $p->ping($_,2);
    $p->close();
 }

 return @dead;
}

sub mail {

  unless (@_ <= 0)    { 
     my $smtp = Net::SMTP->new('10.0.0.2', Timeout => 60);
     my $message = "From: algo\@algo.com\nSubject: WIFIS\n\n

     $smtp->mail('algo@algo.com');
     $smtp->to('alguien@dalgunlado.com');

     $message .= $_ . "\n" foreach (@_);

     $smtp->data();
     $smtp->datasend($message);
     $smtp->datasend();
     $smtp->quit;
   }
}

my @kk=ping(@ap);
mail(@kk);

Comentarios