Perl - 使用 Net::SNMP::Interfaces 列出主机的接口

Perl - 使用 Net::SNMP::Interfaces 列出主机的接口

我正在使用 snmp,如何获取主机上所有接口的列表。

  use Net::SNMP::Interfaces;

    my $interfaces = Net::SNMP::Interfaces->new(Hostname => 'localhost',
                                                Community => 'public' );

    my @ifnames = $interfaces->all_interfaces();

但我收到的答复是:

root@localhost:~# perl i.pl
Can't call method "all_interfaces" on an undefined value at i.pl line 6.

答案1

我认为 Red Cricket 的想法是正确的。Net::SNMP::Interfaces->new如果出现问题,将返回 undef。

您可以尝试执行以下操作吗?

#!/usr/bin/perl
use strict;
use warnings;
use Net::SNMP::Interfaces;

use Data::Dumper;

my $interfaces = Net::SNMP::Interfaces->new(
  Hostname => 'localhost',
  Community => 'public'
) or die "Error: $Net::SNMP::Interfaces::error";
my @ifnames = $interfaces->all_interfaces();

print Dumper \@ifnames;

相关内容