41 lines
778 B
Perl
Executable file
41 lines
778 B
Perl
Executable file
#!/usr/bin/perl -w
|
|
|
|
use strict;
|
|
use Getopt::Long qw(:config no_ignore_case);
|
|
use Time::HiRes qw/ time sleep /;
|
|
|
|
sub usage() {
|
|
print "Usage: check_wins -H <host> -q <query> [-t <type>]\n"
|
|
}
|
|
|
|
my ($host, $query, $type);
|
|
my $result = GetOptions(
|
|
"H|host=s" => \$host,
|
|
"q|query=s" => \$query,
|
|
"t|type=s" => \$type,
|
|
);
|
|
|
|
if (!$type) {
|
|
$type = "00"
|
|
}
|
|
if (!$host || !$query) {
|
|
usage();
|
|
exit 3;
|
|
}
|
|
|
|
my ($start, $end, $time);
|
|
|
|
$start = time;
|
|
$result = `/usr/bin/nmblookup -R -U "$host" "$query#$type"`;
|
|
$end = time;
|
|
|
|
$time = sprintf("%.3f", $end - $start);
|
|
$result =~ s/\n/: /;
|
|
|
|
if ($result =~ /name_query failed/) {
|
|
print "WINS CRITICAL: ${result}";
|
|
exit(2);
|
|
} else {
|
|
print "WINS OK: ${time} seconds response time. ${result}";
|
|
exit(0);
|
|
}
|