#!/bin/bash
STATE_A=0
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
FILE="/usr/lib/nagios/externe_ip/current_IP"
CHANGED_FILE="/usr/lib/nagios/externe_ip/changed"
IP_V4="$(dig autinityvpn.spdns.de| grep autinityvpn.spdns.de | awk '{print $5}' | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')"
CURRENT_IP_V4="$(cat $FILE)"


if [ -f $CHANGED_FILE ];
then
    STATE_A=2
fi
if [ -z ${IP_V4// /} ];
then
        echo "[Critical] autinityvpn.spdns.de ist nicht erreichbar | state=1"
        exit 2
fi

if [ -f $FILE ] && [ $STATE_A != 2 ];
then
        if [ "${IP_V4}" != "${CURRENT_IP_V4}" ];
        then
                if [ ! -f ${CHANGED_FILE} ];
                then
                        touch ${CHANGED_FILE}
                        echo "Alte IP:"$CURRENT_IP_V4 >> $CHANGED_FILE
                        echo "Neue IP:"$IP_V4 >> $CHANGED_FILE
                fi
                echo "[Critical] IP hat sich geändert"
                echo ${IP_V4} > ${FILE}
                exit $STATE_CRITICAL
        fi
fi

if [ $STATE_A -eq 2 ];
then
    echo "[Critical] externe IP hat sich geändert"
    echo "$(cat /usr/lib/nagios/externe_ip/changed)"
    echo "/usr/lib/nagios/externe_ip/changed | state=1"
    exit $STATE_CRITICAL
else
    echo "[OK] IP has not changed | state=0"
    echo "$IP_V4" > $FILE
    exit $STATE_OK
fi