我想用Nmap::Parser
將nmap
掃描的XML輸出轉換成CSV文件,我在開始時就遇到了問題。Nmap :: Parser,大文件上的分段錯誤
解析小型TCP/UDP掃描可以正常工作,但是當我嘗試轉換大型文件(例如20 MB)時,尤其是打開所有65535 UDP端口的文件時,出現分段錯誤。
這個問題似乎是「parsefile」的方法。
我試圖在Linux和Mac OS X版本不同的Perl 5.10/5.14的相同的結果。請參閱下面的代碼片段。
#!/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;
可以嘗試用Perl 5.16?它看起來像Perl中的一個錯誤,在這裏描述:http://www.perlmonks.org/?node_id=955478 – mirod 2012-07-23 09:37:57
嗨mirod,非常感謝你的幫助。升級Perl取得了訣竅。我剛剛安裝了perl 5.16,現在一切正常。成功轉換70MB XML文件。 :-) – rhe24 2012-07-23 11:47:11
請提供這作爲一個答案,並接受它。 – 2012-10-15 20:37:41