xml - Nmap:: Parser, falla de segmentación en archivos grandes
perl cpan (1)
Me gustaría usar Nmap::Parser
para convertir la salida XML de un escaneo de nmap
en un archivo CSV y ya estoy teniendo problemas desde el principio.
El análisis de los análisis TCP / UDP pequeños funciona bien, pero cuando intento convertir un archivo más grande (por ejemplo, 20 MB), especialmente uno con todos los 65535 puertos UDP abiertos | filtrados, aparece un error de segmentación.
El problema parece ser el método "parsefile".
Probé diferentes versiones de Perl 5.10 / 5.14 en Linux y Mac OS X con los mismos resultados. Por favor, vea el fragmento de código a continuación.
#!/usr/bin/env perl
use strict; use warnings;
use Nmap::Parser;
my $np1 = new Nmap::Parser;
my $xmlin = $ARGV[0];
sub read_file {
$np1->parsefile($xmlin);
for my $host ($np1->all_hosts()) {
for my $port ($host->udp_ports()) {
print $host->ipv4_addr()." ".$port."/n";
}
}
}
&read_file;
El problema surge debido a un error conocido en las versiones de Perl <5.16 como se menciona en: perlmonks.org/?node_id=955478
Actualizar el perl a 5.16 o superior resolverá este problema.