• Publicidad

Tiempo de espera para una conexión

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Tiempo de espera para una conexión

Notapor primitivo » 2013-08-09 09:24 @433

Hola, gente.

Tengo el siguiente código, para buscar posible puertos abiertos y crear conexiones.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. sub vncscan {
  2.     my ($ip) = (shift);
  3.     my $ok = 0;
  4.  
  5.     for ( ; $i < 13; $i++ ) {
  6.         $SIG{ALRM} = sub { print "alarm\n"; };
  7.         my $vnc = IO::Socket::INET->new( Proto => "tcp", PeerAddr => $ip, PeerPort => $port[$i], Type => SOCK_STREAM );
  8.         alarm(2);
  9.         if (<$vnc>) {
  10.  
  11.             my $info = <$vnc>;
  12.             print $socket "PRIVMSG $temp[2] <img src="http://perlenespanol.com/foro/images/smilies/icon_razz.gif" alt=":P" title="Razz" />uerto $port[$i] abierto INFo => $info\n";
  13.             close($vnc);
  14.             $ok++;
  15.         }
  16.         elsif ( !<$vnc> ) {
  17.             close($vnc);
  18.  
  19.         }
  20.         elsif ( $@ eq "alarm" ) {
  21.             print $socket "PRIVMSG $temp[2] :¡Tiempo de espera agotado! Puerto $port[$i] Fuera de alcance.\n";
  22.         }
  23.         else {
  24.             $i++;
  25.  
  26.         }
  27.  
  28.     }
  29.     print $socket "PRIVMSG $temp[2] :Termina el scaneo para $i puerto(s), encontrando $ok puerto(s) abiertos.\n";
  30.     $i = 0;
  31. }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


El tema es que, en algunos puertos se me cuelga y demora demasiado en dar respuesta. ¿Podría dar una especie de Timeout? Para que espere la conexión por un máximo de dos segundos; de no serlo, cierre y continúe con el puerto siguiente.
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004

Publicidad

Re: Tiempo de espera para una conexión

Notapor explorer » 2013-08-09 11:02 @501

IO::Socket::INET sí que tiene la opción de Timeout...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Tiempo de espera para una conexión

Notapor primitivo » 2013-08-09 11:36 @525

¿Se le coloca 'Timeout=>2'?
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004

Re: Tiempo de espera para una conexión

Notapor explorer » 2013-08-09 14:06 @629

Sí, dentro del new(), igual que has puesto el resto de opciones.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 1 invitado

cron