Ayuda con Net::Telnet

Dairo Bel dairo@akrata.org
Mon, 21 Mar 2016 20:43:28 +0200


Hola a todos:

Soy nuevo en esta lista de correo, y en la programación de Perl.

He hecho un programa que usando el módulo Net::Telnet, hace un telnet a una dirección IP, y luego muestra lo que devuelve el server. Se trata de poner una clase C, y que la mire entera.
Si lo pruebo en local, me funciona, pero al hacerlo en remoto, me da fallo en cuanto no conecta con un sitio.
Supongo que el fallo estará en algun "die", pero no sabría decir, claro :?
Aqui os pongo el código, a ver si me podeis hechar una mano.

#!/usr/bin/perl -w

use Net::Telnet();

unless (@ARGV == 2) {die" Escribe ./scan.pl tiempo_respuesta
host_de_comienzo"}
($tiempo)=$ARGV[0];
($direccion)=$ARGV[1];


if ($direccion !~ /^\d+\.\d+\.\d+\.$/)
 {
    print " Escribe: ./scan.pl tiempo_respuesta xxx.xxx.xxx.\n";
    print " (donde xxx.xxx.xxx es una IP de clase C, del tipo 123.143.2.";
    exit 1;
 }

 $nombre = $aliases = $tipo = $longitud = 0;
 @array_gay = ();
$remoto = new Net::Telnet(Timeout=>$tiempo); 
  for ($i = 1; $i <= 255; $i++)
   {
     $IP = $direccion . $i;
     print "Intentando $IP -------> " ;    #Ponemos la direccion que intentamos ver
     ($nombre, $aliases, $tipo, $longitud, @array_gay) =
     gethostbyaddr(pack('C4', split('\.', $IP)), 2);
     if ($array_gay[0])
     {
       $remoto-> open (Host =>"$IP" );    #Abrimos una conexion al ordenador
         $remoto->errmode("arrayref");
         print $remoto->get;      
         ($lala)=$remoto->get;   #Consige el string 
         print ("$lala\n");   
         print("*****************************************\n");
          } else
   { print " Parece que no conecta... \n\n"; }
  }


Un saludo,
Dairo Bel.