Perl脚本过滤wireshark以太网数据包

Perl脚本过滤wireshark以太网数据包,perl,filter,command-line-arguments,wireshark,packet-sniffers,Perl,Filter,Command Line Arguments,Wireshark,Packet Sniffers,我正在开发一个inventory agent守护进程,因此我目前正在尝试创建一个perl脚本,该脚本将使用LLDP协议解析以太网数据包 Im使用tshark以太网过滤器获取这些详细信息,然后打印出来 @ARGV = ``tshark -i ether proto \0x88cc'`; while (@ARGV) { my $item = @ARGV; print "$item \n"; } 这会导致编译错误:无法执行“tshark” 我认为我没有正确地将tshark过

我正在开发一个inventory agent守护进程,因此我目前正在尝试创建一个perl脚本,该脚本将使用LLDP协议解析以太网数据包

Im使用tshark以太网过滤器获取这些详细信息,然后打印出来

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

while (@ARGV)
{
    my $item =  @ARGV;
    print "$item \n";   
}
这会导致编译错误:
无法执行“tshark”


我认为我没有正确地将tshark过滤器选项传递给命令行,但据我所知,反勾号用于捕获命令行参数的输出。

我不知道
tshark
。但如果
tshark-i ether proto\0x88cc
是来自shell的可执行命令,请尝试以下操作,否则请提供更多详细信息

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

我仍然收到相同的错误,因此它似乎是命令的格式。使用以下文档获取所需的命令:@JoshBalta800在这种情况下,能否先在shell命令行上测试它?如果工作正常,请提供结果。很抱歉,我只能在
perl
部分提供帮助。在使用#tshark ether proto'0x88cc'在命令行上进行测试后,我发现缺少tshark包,因此我运行sudo来安装tshark,这解决了问题。