Nmap:: Parser, défaut de Segmentation sur les gros fichiers

je voudrais utiliser Nmap::Parser pour convertir la sortie XML d'un nmap numériser dans un fichier CSV et j'ai déjà des problèmes au tout début.

Parsing petits TCP / UDP scans fonctionne bien, mais quand j'essaie de convertir un plus grand fichier (par exemple , 20 Mo), en particulier un avec tous les 65535 ports UDP ouverts|filtrés, je reçois un défaut de segmentation.

le problème semble être la méthode "parsefile".

j'ai essayé différentes versions de Perl 5.10 / 5.14 sur Linux et Mac OS X avec les mêmes résultats. Veuillez consulter l'extrait de code ci-dessous.

#!/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;
17
demandé sur Marc 2012-07-23 13:05:49

1 réponses

le problème est dû à un bug connu dans les versions perl <5.16 comme indiqué à: http://www.perlmonks.org/?node_id=955478

la mise à niveau de la perl à 5.16 ou plus résoudra ce problème.

3
répondu askmish 2012-10-17 19:14:35