66 lines
1.2 KiB
Perl
66 lines
1.2 KiB
Perl
#!/usr/bin/perl -w
|
|
|
|
## From Sascha Schaal
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
my $REQ = $ARGV[0];
|
|
my $ROID = $ARGV[1];
|
|
my $Base = ".1.3.6.1.2.1.31.1.1.1.18";
|
|
my @iface_list = `ip l | grep mtu`;
|
|
my $index = 0;
|
|
my %Table;
|
|
my $p_oid;
|
|
my $p_type = "STRING";
|
|
my $p_desc;
|
|
|
|
if ($ROID eq $Base){
|
|
$index = 0;
|
|
}
|
|
else{
|
|
my @split = split("$Base.",$ROID);
|
|
$index = $split[1];
|
|
}
|
|
foreach my $row (@iface_list){
|
|
my @split = split(": ", $row);
|
|
my $desc = `grep "^# $split[1]:" /etc/network/interfaces|sed s/^\\#\\ $split[1]:\\ //`;
|
|
my ($key, $value) = ("$Base.$split[0]",$desc);
|
|
$Table{$key} = $value;
|
|
}
|
|
if ($REQ eq "-g"){
|
|
if ($index == 0){
|
|
exit 0;
|
|
}
|
|
else{
|
|
if( exists($Table{$ROID} ) ) {
|
|
$p_oid = $ROID;
|
|
$p_desc = $Table{$ROID};
|
|
}
|
|
else{
|
|
print "noSuchName\n";
|
|
exit 0;
|
|
}
|
|
}
|
|
|
|
}
|
|
elsif ($REQ eq "-n"){
|
|
for ($index, $index <= keys %Table,$index++){
|
|
if( exists($Table{"$Base.$index"} ) ) {
|
|
$p_oid = "$Base.$index";
|
|
$p_desc = $Table{"$Base.$index"};
|
|
}
|
|
else{
|
|
exit 0;
|
|
}
|
|
}
|
|
}
|
|
else{
|
|
exit 0;
|
|
}
|
|
|
|
print "$p_oid\n";
|
|
print "$p_type\n";
|
|
print "$p_desc";
|
|
exit 0;
|