Как я могу получить список всех интерфейсов на хосте с помощью 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.
Я думаю, что у 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;