#! /bin/sh
# DynIP-Script
# Date: 2004-08-12
# (C) Jochen Pawletta <jochen@hin.de>

INPUT=/usr/local/DynIP/DynIP-Userliste
OUTPUT=/usr/local/DynIP/ip-liste.out
STUNDE=$[ `date +%k` ]
STUNDEzuvor=$[ $STUNDE - 1 ]
if [ $STUNDEzuvor = "-1" ] ; then
  STUNDEzuvor=23
fi

doping ()
{
 ping -c 3 $1 &>/dev/null
 if [ $? = "0" ] ; then
   return 0
 else
   return 1
 fi
}

eintrag ()
{
 echo "$1		120	IN	A	$2" >>$OUTPUT
}


if [ ! -f $INPUT ] ; then exit 1 ; fi
if [ -f $OUTPUT ] ; then rm $OUTPUT ; fi

cat $INPUT | while read HOSTNAME IPDATEI PASS ; do

  if [ -s $IPDATEI ] ; then
    rm $IPDATEI.* 2>/dev/null
    mv $IPDATEI $IPDATEI.$STUNDEzuvor
  fi

  if [ -s $IPDATEI.$STUNDEzuvor ] ; then
    IP=`cat $IPDATEI.$STUNDEzuvor`
    if (doping $IP) ; then
      mv $IPDATEI.$STUNDEzuvor $IPDATEI.$STUNDE
    else
      rm $IPDATEI.* 2>/dev/null
    fi
  fi

  if [ -s $IPDATEI.$STUNDE ] ; then
    IP=`cat $IPDATEI.$STUNDE`
    eintrag $HOSTNAME $IP
  fi

done
