#!/bin/sh
#
# Nagios plugin to check if a default gateway is set
# written by Gerd Koenig <geko@deb.ymc.ch>
#
# Description:
#
# This plugin will return information about the
# defined default gateway

message="OK"
exit_code=0

count=$(route -n | grep -c '^0.0.0.0')
if [ $count -gt 0 ]; then
  for gw in $(route -n | grep '^0.0.0.0' | awk '{print $2,$3}' | grep '0.0.0.0$' | awk '{print $1}'); do
    if  [ "x$gw" != "x" ]; then
      result=$(echo $gw | awk -F '[.]' 'function ok(n){return (n>=0 && n<=255)} {print (ok($1) && ok($2) && ok($3) && ok($4))}')
      if [ $result -eq 1 ]; then
        message="$message, default gw: $gw"
        exit_code=0
      else
        message="invalid default gateway defined: $gw"
        exit_code=2
      fi
    else
      message="could not detect default gateway"
      exit_code=1
    fi
  done
else
    message="no default gateway defined"
    exit_code=2
fi

echo $message
exit $exit_code
