#!/usr/bin/perl $snmpget="/usr/local/bin/snmpget"; $snmpwalk="/usr/local/bin/snmpwalk"; $nas=shift; $user=shift; $com=shift || "public"; $type=shift|| "xml"; @ModulationScheme = ( "error", "unknown", "bell103a", "bell212a", "v21", "v22", "v22bis", "v32", "v32bis", "vfc", "v34", "v17", "v29", "v33", "k56flex", "v23", "v32terbo", "v34plus", "v90", "v27ter", ); @Protocol = ( "error", "normal", "direct", "reliableMNP", "reliableLAPM", "syncMode", "asyncMode", "ara10", "ara20", "unknown", ); $modem=`$snmpwalk $nas $com enterprises.9.2.9.2.1.18 | grep $user`; if($modem=~/enterprises\.9\.2\.9\.2\.1\.18\.(\d+) =/){ $modem=$1; $slot=(1+int($modem/120)); $port=$modem%120-1; $modem="$slot.$port"; $duration=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.9.$modem` or die "No MIB\n"; $duration=~/\) (.*)\./; $duration=$1; $modulation=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.12.$modem` or die "No MIB\n"; $modulation=~/ \= (\d+)/; $modulation=$ModulationScheme[$1]; $protocol=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.13.$modem` or die "No MIB\n"; $protocol=~/ \= (\d+)/; $protocol=$Protocol[$1]; $txrate=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.14.$modem` or die "No MIB\n"; $txrate=~/Gauge32\: (\d+)/; $txrate=$1; $rxrate=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.15.$modem` or die "No MIB\n"; $rxrate=~/Gauge32\: (\d+)/; $rxrate=$1; $rxsignal=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.17.$modem` or die "No MIB\n"; $rxsignal=~/ \= (.*)\n/; $rxsignal=$1; if($type eq "xml"){ print"$modulation$protocol$txrate$rxrate$rxsignal\n"; }else{ print "Duration>\t$duration\n"; print "Modulation>\t$modulation\n"; print "Protocol>\t$protocol\n"; print "TxRate>\t\t$txrate\n"; print "RxRate>\t\t$rxrate\n"; print "RxSignal>\t$rxsignal dbm\n"; } }