3 # This works with Net-SNMP and UCD-SNMP
7 $comm=shift || "public";
10 $conf='/usr/local/dialup_admin/conf/admin.conf';
12 or die "Could not open configuration file\n";
15 ($key,$val)=(split /:\s*/,$_);
16 $snmp_type = $val if ($key eq 'general_snmp_type');
17 $snmpget = $val if ($key eq 'general_snmpget_command');
18 $snmpwalk = $val if ($key eq 'general_snmpwalk_command');
22 die "general_snmp_type directive is not set in admin.conf\n" if ($snmp_type eq '');
23 die "Could not find snmpwalk binary. Please make sure that the \$snmpwalk variable points to the right location\n" if (! -x $snmpwalk);
25 if ($snmp_type = 'ucd') {
26 $snmpgetcmd="$snmpget $host $comm";
27 $snmpwalkcmd="$snmpwalk $host $comm";
29 if ($snmp_type = 'net') {
30 $snmpgetcmd="$snmpget -v 1 -c $comm $host";
31 $snmpwalkcmd="$snmpwalk -v 1 -c $comm $host";
33 #DEBUG#print "$snmpwalkcmd\n"; print "$snmpgetcmd\n";
69 #DEBUG#print "$snmpwalkcmd enterprises.9.2.9.2.1.18 | grep $user\n";
70 $modem=`$snmpwalkcmd enterprises.9.2.9.2.1.18 | grep $user`;
71 if($modem=~/enterprises\.9\.2\.9\.2\.1\.18\.(\d+) =/){
73 $slot=(1+int($modem/120));
77 #DEBUG#print "$snmpgetcmd enterprises.9.9.47.1.3.1.1.9.$modem\n";
78 $duration=`$snmpgetcmd enterprises.9.9.47.1.3.1.1.9.$modem` or die "No MIB\n";
79 $duration=~/\) (.*)\./;
82 #DEBUG#print "$snmpgetcmd enterprises.9.9.47.1.3.1.1.12.$modem\n";
83 $modulation=`$snmpgetcmd enterprises.9.9.47.1.3.1.1.12.$modem` or die "No MIB\n";
84 $modulation=~/ \= (\d+)/;
85 $modulation=$ModulationScheme[$1];
87 #DEBUG#print "$snmpgetcmd enterprises.9.9.47.1.3.1.1.13.$modem\n";
88 $protocol=`$snmpgetcmd enterprises.9.9.47.1.3.1.1.13.$modem` or die "No MIB\n";
89 $protocol=~/ \= (\d+)/;
90 $protocol=$Protocol[$1];
92 #DEBUG#print "$snmpgetcmd enterprises.9.9.47.1.3.1.1.14.$modem\n";
93 $txrate=`$snmpgetcmd enterprises.9.9.47.1.3.1.1.14.$modem` or die "No MIB\n";
94 $txrate=~/Gauge32\: (\d+)/;
97 #DEBUG#print "$snmpgetcmd enterprises.9.9.47.1.3.1.1.15.$modem\n";
98 $rxrate=`$snmpgetcmd enterprises.9.9.47.1.3.1.1.15.$modem` or die "No MIB\n";
99 $rxrate=~/Gauge32\: (\d+)/;
102 #DEBUG#print "$snmpgetcmd enterprises.9.9.47.1.3.1.1.17.$modem\n";
103 $rxsignal=`$snmpgetcmd enterprises.9.9.47.1.3.1.1.17.$modem` or die "No MIB\n";
104 # $rxsignal=~ s/INTEGER\://;
105 $rxsignal=~/ \= (.*)\n/;
109 print "<User>$user</User>\n";
110 print "\t<Duration>$duration</Duration>\n";
111 print "\t<Modulation>$modulation</Modulation>\n";
112 print "\t<Protocol>$protocol</Protocol>\n";
113 print "\t<TxRate>$txrate</TxRate>\n";
114 print "\t<RxRate>$rxrate</RxRate>\n";
115 print "\t<RxSignal>$rxsignal dBm</RxSignal>\n\n";
117 printf("%14s\t%s\n","User",$user);
118 printf("%14s\t%s\n","Duration",$duration);
119 printf("%14s\t%s\n","Modulation",$modulation);
120 printf("%14s\t%s\n","Protocol",$protocol);
121 printf("%14s\t%s\n","TxRate",$txrate);
122 printf("%14s\t%s\n","RxRate",$rxrate);
123 printf("%14s\t%s dBm\n\n","RxSignal",$rxsignal);