Desidero utilizzare Nmap::Parser
per convertire l'output XML di una scansione nmap
in un file CSV e ho già riscontrato problemi all'inizio.Nmap :: Parser, errore di segmentazione su file di grandi dimensioni
L'analisi di piccole scansioni TCP/UDP funziona correttamente, ma quando provo a convertire un file più grande (ad es. 20 MB), in particolare uno con tutte le porte UDP 65535 aperte, viene visualizzato un errore di segmentazione.
Il problema sembra essere il metodo "parsefile".
Ho provato diverse versioni di Perl 5.10/5.14 su Linux e Mac OS X con gli stessi risultati. Si prega di vedere lo snippet di codice qui sotto.
#!/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;
potresti provare con perl 5.16? Sembra un bug in Perl, descritto qui: http://www.perlmonks.org/?node_id=955478 – mirod
Ciao mirod, grazie mille per il tuo aiuto. L'aggiornamento di Perl ha fatto il trucco. Ho appena installato perl 5.16 e tutto funziona ora. Convertito con successo un file XML da 70 MB. :-) – rhe24
Si prega di fornire questo come una risposta e accettarlo. –