我想使用Nmap :: Parser将nmap扫描的XML输出转换为CSV文件,我一开始就遇到问题。
解析小型TCP / UDP扫描工作正常,但是当我尝试转换一个较大的文件(例如20 MB)时,特别是打开| 65535 UDP端口的所有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;