Perl&Net :: SNMP :: Interfaces :: Details,如何获取mac地址?
|
对于我的实习,我必须给网络主管编码。我正在编写perl脚本以从交换机上的接口名称查找所有信息(速度,mac地址,双工...)。
该模块中有一个函数“ ifPhysAddress”,但是它返回交换机接口的mac地址,而不是与其连接的设备的mac地址。
我如何找到Mac地址?
谢谢
在这里,我已经开始:
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
use SnmpTable;
use Net::MAC;
use Net::SNMP;
use Net::SNMP::Interfaces;
my $ifname;
my $hostname;
my $community;
my $version = 1;
GetOptions( \"ifname=s\" => \\$ifname,
\"host=s\" => \\$hostname,
\"community=s\" => \\$community,
\"protocol:s\" => \\$version);
my $interfaces = Net::SNMP::Interfaces->new(Hostname => $hostname, Community => $community);
my $inter = $interfaces->interface($ifname);
#On récupere l\'identifiant de l\'interface $ifname
my $ifindex = $inter->index();
#Vitesse
my $vitesse = $inter->ifHighSpeed();
#Alias
my $ifalias = $inter->ifAlias();
#Recherche des VLANs
my $numeroportbridge;
my $vlan_trouve;
my $oid_cisco_vlans = \"1.3.6.1.4.1.9.9.46.1.3.1.1.2.1\";
my $vlans = SnmpTable->new($hostname, $oid_cisco_vlans, $community);
$vlans->connexion();
my %vl = $vlans->requete();
my @tab = keys(%vl);
foreach my $i (@tab) {
if ($i<1000) {
my $comvlan = $community.\"@\".$i;
print $comvlan.\"\\n\";
}
}
printf \"Nom de l\'interface : %s --> ifindex = %s, Vitesse = %s, Alias = %s\\n\", $ifname, $ifindex, $vitesse, $ifalias;
没有找到相关结果
已邀请:
2 个回复
广躺椽
粳饶瓢部
我使用Net :: SNMP创建了一个SnmpTable.pm类,它确实可以: $ session-> get_table(-baseoid => $ this-> {oid}) 并以散列形式返回。 就这样。 再见