Tôi muốn sử dụng Nmap::Parser
để chuyển đổi đầu ra XML của một lần quét nmap
thành tệp CSV và tôi đã gặp sự cố ngay từ đầu.Nmap :: Trình phân tích cú pháp, lỗi phân đoạn trên các tệp lớn
Phân tích cú pháp quét TCP/UDP nhỏ hoạt động tốt, nhưng khi tôi cố gắng chuyển đổi tệp lớn hơn (ví dụ: 20 MB), đặc biệt là với tất cả 65535 cổng UDP mở | được lọc, tôi nhận được lỗi phân đoạn.
Sự cố có vẻ là phương pháp "phân tích cú pháp".
Tôi đã thử các phiên bản khác nhau của Perl 5.10/5.14 trên Linux và Mac OS X với cùng kết quả. Vui lòng xem đoạn mã bên dưới.
#!/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;
bạn có thể thử với perl 5.16 không? Nó trông giống như một lỗi trong Perl, được mô tả ở đây: http://www.perlmonks.org/?node_id=955478 – mirod
Xin chào mirod, cảm ơn bạn rất nhiều vì đã giúp đỡ bạn. Nâng cấp Perl đã làm các trick. Tôi vừa cài đặt perl 5.16 và mọi thứ hiện đang hoạt động. Đã chuyển đổi thành công tệp XML 70MB. :-) – rhe24
Vui lòng cung cấp câu trả lời này làm câu trả lời và chấp nhận. –