Nmap::Parser, Ошибка сегментации больших файлов

Я хотел бы использовать Nmap::Parser для преобразования XML-вывода сканирования nmap в файл CSV, и у меня уже возникают проблемы в самом начале.

Анализ небольших сканирований TCP/UDP работает нормально, но когда я пытаюсь преобразовать файл большего размера (например, 20 МБ), особенно тот, в котором все 65535 портов UDP открыты | отфильтрованы, я получаю ошибку сегментации.

Проблема, похоже, в методе "parsefile".

Я пробовал разные версии Perl 5.10/5.14 в Linux и Mac OS X с одинаковыми результатами. См. фрагмент кода ниже.

#!/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;

person rhe24    schedule 23.07.2012    source источник
comment
не могли бы вы попробовать Perl 5.16? Похоже на ошибку в Perl, описанную здесь: perlmonks.org/?node_id=955478   -  person mirod    schedule 23.07.2012
comment
Привет Мирод, большое спасибо за вашу помощь. Обновление Perl помогло. Я только что установил perl 5.16, и теперь все работает. Успешно преобразован XML-файл размером 70 МБ. :-)   -  person rhe24    schedule 23.07.2012
comment
Пожалуйста, предоставьте это как ответ и примите его.   -  person Thomas Berger    schedule 16.10.2012


Ответы (1)


Проблема возникает из-за известной ошибки в версиях perl ‹5.16, как указано по адресу: http://www.perlmonks.org/?node_id=955478

Обновление Perl до версии 5.16 или выше решит эту проблему.

person Community    schedule 17.10.2012
comment
На этот вопрос есть ответ, и он не входит в список неотвеченных. Я собирался сделать то, что ты сделал. Спасибо за это. - person Tim Post♦; 18.10.2012