Я пытаюсь запустить скрипт на сервере Debian, который использует модуль Net :: Pcap. Скрипт отлично работает на всех машинах, кроме этого сервера, который оказался единственным, на котором мне нужно работать.
После запуска скрипта я получаю общую фразу «Не удается найти загружаемый объект для модуля Net :: Pcap в @INC (путь .. и т. Д.)» *
Однако, когда я пытаюсь установить с помощью CPAN, я получаю сообщение «Net :: Pcap обновлен (0.16)».
Я вручную удалил Net :: Pcap из всех папок в @INC и переустановил их как вручную, так и через CPAN.
Кто-нибудь знает, в чем моя проблема?
Для чего это стоит, вот код:
use Net::Pcap;
use NetPacket::TCP;
use NetPacket::IP;
use NetPacket::Ethernet;
use Net::PcapUtils;
open (TXT, ">", "data.txt");
Net::PcapUtils::loop(\&process_packet,SNAPLEN => 65536,PROMISC => 1, );
sub process_packet {
my($user_data, $header, $packet) = @_;
my $tcp_obj = NetPacket::TCP->decode($packet);
my $ip_obj = NetPacket::IP->decode($packet);
my $len = length $packet;
my $i=0;
print TXT "From: "."$ip_obj->{src_ip}".":"."$tcp_obj->{src_port}\n";
print TXT "To: "."$ip_obj->{dest_ip}".":"."$tcp_obj->{dest_port}\n";
do {
my $lg = substr $packet, $i, 16;
printf TXT "%.8X : ", $i;
$i+=16;
print TXT unpack ('H2'x16, $lg), ' 'x(16-length $lg);
$lg =~ s/[\x00-\x1F\xFF]/./g;
print TXT " $lg\n";
} until $i>=$len;
print TXT "\n";
}
close (TXT);