#!/bin/bash

_usage () {
   echo "Usage: ipdiag [ -g | -l | -s ] IPs ..."
   echo "Usage: ipdiag [ -h | --help ]"
   echo "Usage: ipdiag [ -v | --version ]"
   echo "   -l ... long format"
   echo "   -s ... short format"
   echo "   -g ... guess format"
}

_version () {
   echo "ipdiag Version 0.5"
}

if [ "$1" = "-h" -o "$1" = "--help" ]; then
   _usage
   exit 17
fi

if [ "$1" = "-v" -o "$1" == "--version" ]; then
   _version
   exit 17
fi

GUESS=yes
FORMAT=short

while [ "$1" = "-g" -o "$1" = "-s" -o "$1" = "-l" ]; do
  if [ "$1" = "-g" ]; then
     GUESS=yes; shift
  elif [ "$1" = "-s" ]; then
     FORMAT=short; shift
  elif [ "$1" = "-l" ]; then
     FORMAT=long; shift
  fi
done

# if [ "$*" = "" ]; then
#    ips="`iptables -v -L INPUT -n | grep block | grep -v LOG | awk '{print $8}'`"
# else
     ips="$*"
# fi

source /etc/default/firewall

for ip in $ips; do

   echo "=== $ip ==="

   if [ -x /usr/bin/geoiplookup ]; then
       geo="`/usr/bin/geoiplookup $ip`"
       echo -n "=== "
       echo "$geo"
   else
      geo=XXX
   fi

   if [ "$FORMAT" = "long" ]; then

      nslookup $ip 2> /dev/null | grep in-addr.arpa | grep -v nameserver
      whois $ip 2> /dev/null | egrep 'netname:|address:|descr:|NET'

   elif ( [ "$GUESS" = "yes" ] && ( echo $geo | egrep -q "$GUESSCOUNTRIES" ) ); then

      nslookup $ip 2> /dev/null | grep in-addr.arpa | grep -v nameserver
      whois $ip 2> /dev/null | egrep 'netname:|address:|descr:|NET'

      # if [ "$LOG" = "yes" ]; then
      #     zzcat /home/lx/rlog/root/var/log/kern.info.3.gz /home/lx/rlog/root/var/log/kern.info.2.gz /home/lx/rlog/root/var/log/kern.info.1 /home/lx/rlog/root/var/log/kern.info 2> /dev/null | grep $ip | tail -20 | sed '1,$ s/rserv kernel: \[[0-9][0-9.]*\] //'
      #     zzcat /home/lx/rlog/root/var/log/auth.log.3.gz /home/lx/rlog/root/var/log/auth.log.2.gz /home/lx/rlog/root/var/log/auth.log.1 /home/lx/rlog/root/var/log/auth.log 2> /dev/null | grep $ip | tail -15
      # fi
   fi
done

