#!/usr/bin/perl

#Coded by GASCHET Anthony
#Contact: gaschetanthony@gmail.com

use strict;

my %etats=("OK"=>0,"WARNING"=>1,"CRITICAL"=>2,"UNKNOWN"=>3);
my $hote = $ARGV[0];
my $communaute = $ARGV[1];
my $mib = $ARGV[2];
my $reponse;
my @resultat;


if($hote eq "" || $mib eq "" || $communaute eq "")
{
	print "\n\tUsage: check_snmp \@IP_hote nom_communaute mib\n\n\n";
	exit 0;
}


$reponse = `/usr/local/nagios/libexec/check_snmp -H $hote -C $communaute -o $mib`;


if($reponse =~ /^SNMP OK.*=2/) #PoE activé (si caractère 2 en fin de ligne)
{
	print "PoE active\n";
	exit $etats{"OK"};
}
elsif ($reponse =~ /^SNMP OK.*=1/) #PoE désactive (si caractère 1 en fin de ligne)
{
	print "PoE inactive\n";
	exit $etats{"WARNING"};
}
elsif ($reponse =~ /^SNMP OK.*/) #Si nous n'avons ni 1, ni 2 nous sommes dans un état inconnu
{
	print "Impossible de determiner l'etat de la PoE\n";
	exit $etats{"UNKNOWN"};
}
else #si aucune réponse, état critique
{	
	print "Critique - Aucune réponse du matériel\n";
	exit $etats{"CRITICAL"};
}