【问题标题】:Perl script filtering wireshark ethernet packetsPerl脚本过滤wireshark以太网数据包
【发布时间】:2013-11-03 01:51:02
【问题描述】:

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

我正在使用 tshark 以太网过滤器来获取这些详细信息,然后将它们打印出来

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

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

这会导致编译错误:Can't exec "tshark"

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

【问题讨论】:

    标签: perl filter command-line-arguments wireshark packet-sniffers


    【解决方案1】:

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

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

    【讨论】:

    • 我仍然收到同样的错误,所以它似乎是命令的格式。使用以下文档获取所需命令:linuxhowtos.org/manpages/7/pcap-filter.htm
    • @JoshBalta800 在这种情况下,你能先在shell命令行上测试一下吗?如果工作正常,请提供结果。很抱歉,我只能在perl 部分提供帮助。
    • 在命令行上使用#tshark ether proto '0x88cc' 对此进行了测试,我发现 tshark 包丢失,所以我运行 sudo apt-get 来安装 tshark,这解决了问题。
    猜你喜欢
    • 1970-01-01
    • 2019-04-26
    • 2021-09-12
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多