• Publicidad

Recorrer directorio con módulo Nmap::Parser

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

Recorrer directorio con módulo Nmap::Parser

Notapor seguridadenmimail » 2012-05-19 13:48 @617

Los molesto porque tengo una duda y no logro poder resolverla.

Estoy usando el módulo en cuestión para analizar información de nmap. Ahora quería pasarle un directorio donde hay muchos "xml" y que me analice todos. En estos momentos solamente le estoy pasando un archivo "xml" y por eso funciona.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $np = new Nmap::Parser;
  2. my $infile = $ARGV[0];
  3. $np->parsefile($infile);
  4.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¿Alguien me puede guiar?
seguridadenmimail
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2011-08-30 19:28 @853

Publicidad

Re: Recorrer directorio con módulo Nmap::Parser

Notapor explorer » 2012-05-19 14:10 @632

Puedes hacer un listado de los archivos presentes en el directorio, por medio de glob(). O usar opendir()-readdir()-closedir() para hacer un bucle por el directorio, de archivo en archivo.

Por estos foros hay ejemplos de estas funciones.

Tienes más información sobre estas funciones en tu propio ordenador, ejecutando perldoc -f nombre_función .
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Recorrer directorio con módulo Nmap::Parser

Notapor seguridadenmimail » 2012-05-19 15:16 @677

Gracias, lo pude lograr con:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $dir = $ARGV[0];
  2. @files = <$dir/*.xml>;
  3. foreach $file (@files) {
  4. $np->parsefile($file);
  5. ..........
  6. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Otra consulta: ¿se puede hacer un eval de 2 módulos? Yo por ahora hago de uno solo con:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. BEGIN {
  2.  
  3.     eval "use MODULO";
  4.  
  5.     if ( $@ ) {
  6.  
  7.         warn  "Error to load module: MODULO\n"
  8.  
  9.         . "Install Module:\n"      
  10.  
  11.         . "\t\tcpan\n"
  12.  
  13.         . "\t\tcpan> install MODULO\n";
  14.  
  15. exit ();
  16.  
  17.  }
  18.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
seguridadenmimail
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2011-08-30 19:28 @853

Re: Recorrer directorio con módulo Nmap::Parser

Notapor explorer » 2012-05-19 19:37 @859

Lo mismo, lo puedes resolver con un bucle... (parece que todos tus problemas, últimamente, se resuelven así ;) )

Otra opción:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Module::Load::Conditional qw[can_load check_install requires];
  2.  
  3. my $use_list = {
  4.     CPANPLUS     => 0.05,
  5.     LWP          => 5.60,
  6.     'Test::More' => undef,
  7. };
  8.  
  9. if (can_load( modules => $use_list )) {
  10.    print 'todos los módulos se cargaron bien';
  11. }
  12. else {
  13.    print 'Falló la carga de los módulos requeridos';
  14. }
  15.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Pero quizás no hace falta tanto... con un bucle for() sobre los nombres a cargar, y por cada uno, ver si ha provocado fallos, o no está, y salir con un mensaje de error y terminar.

La receta 12.2 de Perl Cookbook también te puede ayudar.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Recorrer directorio con módulo Nmap::Parser

Notapor seguridadenmimail » 2012-05-19 20:01 @875

Estoy probando con:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $use_list = {
  2.     Nmap::Parser                 => 1.21,
  3.     Excel::Writer::XLSX          => 0.47,
  4.     'Test::More' => undef,
  5. };
  6.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Y obtengo el mensaje de que no se cargaron los módulos :S

Saludos.
seguridadenmimail
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2011-08-30 19:28 @853

Re: Recorrer directorio con módulo Nmap::Parser

Notapor explorer » 2012-05-20 05:24 @266

La solución que te he puesto es para ser usada con el módulo Module::Load::Conditional, y con su función can_load().

Debes poner las mismas líneas que te he puesto yo, y poner los nombres de los módulos entre comillas simples, en caso de que contengan '::'. Y los números que tienen a su derecha es la versión mínima que requerimos de ellos. En caso de que no nos importe ese número de versión, pondremos undef.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Recorrer directorio con módulo Nmap::Parser

Notapor seguridadenmimail » 2012-05-20 09:24 @433

¡Muchas, gracias! Perdón por no haber prestado tanta atención.
seguridadenmimail
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2011-08-30 19:28 @853


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados