DEST=/tmp/stat.$$
SRC=/httpd/virtual/casanova/db/cron/hosts.stat

if [ -z "$1" ]
	then	exit
fi

> $DEST

do_check () {

	ip=$1; idx=$2

	SQL=`mysql -u root -pzebra09 -B -e "SELECT * FROM hostdata WHERE ip = '$ip';" personal 2> /dev/null | tail -1 | tr "\011", "="`

	MY_MAC=`echo "$SQL"  | awk -F= '{print $2}'`
	MY_MACW=`echo "$SQL" | awk -F= '{print $3}'`
	MY_NAME=`echo "$SQL" | awk -F= '{print $6}'`

	if [ -z "$MY_MAC" ]
		then	CODE="nv"
			echo "$ip:::$CODE:0" >> $DEST
			return
	fi

	if ping -c 1 $ip > /dev/null

		then	ARP=`/sbin/arp -a | grep "($ip)"`
			ARP_NAME=`echo $ARP | cut -d" " -f1`
			ARP_MAC=` echo $ARP | cut -d" " -f4 | tr [a-f] [A-F]`

			if [ "$ARP_MAC" = "$MY_MAC" -o "$ARP_MAC" = "$MY_MACW" ]
				then	ARP_MAC=
				else	ARP_MAC=`echo $ARP_MAC | sed 's|:|-|g'`
			fi
			if [ "$ARP_NAME" = "$MY_NAME" -o "$ARP_NAME" = "${MY_NAME}.ids-mannheim.de" ]
				then	ARP_NAME=
			fi

			CODE="av"
			echo "$ip:$ARP_MAC:$ARP_NAME:$CODE:-10" >> $DEST

		else	CODE="dl"
			echo "$ip:::$CODE:$idx" >> $DEST
	fi
}


while read line
do
	ip=`  echo $line | cut -d: -f1`
	mac=` echo $line | cut -d: -f2`
	name=`echo $line | cut -d: -f3`
	code=`echo $line | cut -d: -f4`
	idx=` echo $line | cut -d: -f5`

	if [ "$1" = "ping" ]
		then	if [ $idx -ge 0 ]
				then	do_check $ip $idx
				else	echo $line >> $DEST
			fi

	elif [ "$1" = "calc" ]
		then	if [ $code = "dl" -a $idx -gt 99 ]
				then	mailx -s "check_hosts: del $ip" seubert@ids-mannheim.de < /dev/null
					idx=0
				else	idx=`expr $idx + 1`
			fi
			echo "$ip:$mac:$name:$code:$idx" >> $DEST
	fi

done < $SRC

mv $DEST $SRC
