0

Я разрабатываю демон запаса инвентаря, поэтому в настоящее время я пытаюсь создать скрипт perl, который будет анализировать пакеты Ethernet с использованием протокола LLDP.Perl script filtering wireshark ethernet пакеты

Im использованием локальных сетей tshark фильтров, чтобы получить эти данные и затем распечатать их

@ARGV = ``tshark -i ether proto \0x88cc'`; 

while (@ARGV) 
{ 
    my $item = @ARGV; 
    print "$item \n"; 
} 

Это приводит к ошибкам компиляции: Can't exec "tshark".

Я думаю, что я неправильно передаю параметры фильтра tshark в командной строке, но насколько мне известно, обратные ссылки используются для захвата вывода аргументов командной строки.

ответ

1

Я не знаю tshark. Но если tshark -i ether proto \0x88cc является исполняемым командой из оболочки попробуйте выполнить еще просьба представить более подробную информацию

my @output= `tshark -i ether proto \0x88cc`; 
foreach my $item (@output) { 
    print "${item}\n"; 
} 
+0

Я все еще получаю ту же ошибку, так что, как представляется, формат команды. Для получения необходимых команд использовался следующий документ: http://www.linuxhowtos.org/manpages/7/pcap-filter.htm –

+1

@ JoshBalta800 В таком случае вы можете сначала проверить его на командной строке оболочки? Укажите результат, если он работает нормально. Извините, что я мог бы помочь только в 'perl' части. – jkshah

+0

, проверив это в командной строке с помощью #tshark ether proto '0x88cc', я обнаружил, что пакет tshark отсутствует, поэтому я запускал sudo apt-get для установки tshark, и это решило проблему. –

Смежные вопросы