aboutsummaryrefslogtreecommitdiff
path: root/contrib/check_wave.pl
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/check_wave.pl')
-rw-r--r--contrib/check_wave.pl77
1 files changed, 77 insertions, 0 deletions
diff --git a/contrib/check_wave.pl b/contrib/check_wave.pl
new file mode 100644
index 00000000..56b59fe0
--- /dev/null
+++ b/contrib/check_wave.pl
@@ -0,0 +1,77 @@
+#!/usr/bin/perl
+
+# CHECK_WAVE.PL
+# Plugin to test signal strength on Speedlan wireless equipment
+# Contributed by Jeffry Blank
+
+$Host=$ARGV[0];
+$sig_crit=$ARGV[1];
+$sig_warn=$ARGV[2];
+
+
+
+
+$low1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`;
+@test=split(/ /,$low1);
+$low1=@test[2];
+
+
+$med1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`;
+@test=split(/ /,$med1);
+$med1=@test[2];
+
+
+$high1 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`;
+@test=split(/ /,$high1);
+$high1=@test[2];
+
+sleep(2);
+
+
+
+$snr = `snmpget $Host public .1.3.6.1.4.1.762.2.5.2.1.17.1`;
+@test=split(/ /,$snr);
+$snr=@test[2];
+$snr=int($snr*25);
+$low2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.8.1`;
+@test=split(/ /,$low2);
+$low2=@test[2];
+
+
+$med2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.9.1`;
+@test=split(/ /,$med2);
+$med2=@test[2];
+
+
+$high2 = `snmpget $Host public .1.3.6.1.4.1.74.2.21.1.2.1.10.1`;
+@test=split(/ /,$high2);
+$high2=@test[2];
+
+
+
+$low=$low2-$low1;
+$med=$med2-$med1;
+$high=$high2-$high1;
+
+$tot=$low+$med+$high;
+
+
+if ($tot==0)
+ {
+ $ss=0;
+ }
+else
+ {
+ $lowavg=$low/$tot;
+ $medavg=$med/$tot;
+ $highavg=$high/$tot;
+ $ss=($medavg*50)+($highavg*100);
+ }
+printf("Signal Strength at: %3.0f%, SNR at $snr%",$ss);
+#print "Signal Strength at: $ss%, SNR at $snr%";
+if ($ss<$sig_crit)
+ {exit(2)}
+if ($ss<$sig_warn)
+ {exit(1)}
+
+exit(0);