Class C Lookup

versucht alle Ip Adresses aus einem class C Netzwerk aufzuloesen und schreibt die Namen in ein File

The Code

CLASS="$1"
FILE="$2"

Usage ()
{
  echo
  echo "Usage: `basename $0` 0.0.0.x [output_file]"
  echo
  exit 1
}

[ $# != 1 -a $# != 2 ] && Usage

echo "$CLASS" | awk -F . '{if(NF$4 != "4x" && NF$4 != "4*")exit 1}' || Usage

echo "$CLASS" | awk -F . '{for(i=1;i<=3;i++){if($i > 255 || $i < 0){exit 1;break} }}'

if [ $? = 1 ]; then
  echo
  echo "Octet values are not compliant to IPv4 address standards"
  Usage
fi

if [ -n "$FILE" ]; then
  umask 077
  touch "$FILE" > /dev/null 2>&1 || { echo; echo "Error writing to output file" ; \
  echo; exit 1; }
  echo > "$FILE"
fi

Lookup ()
{

  trap " echo 'Killed!' ; exit 1 " 1 2 3 15

  echo

  NUM=`echo "$CLASS" | tr -d "*",x`
  NUM1="0"

  while [ "$NUM1" -lt "256" ];
   do
     GET=`host $NUM$NUM1 2> /dev/null | awk '/pointer/ { print $NF }' \
     | xargs echo -n | sed s/' '/,\ /g`
     test -n "$GET" && echo -e "$NUM$NUM1\tis    $GET"
     NUM1=$(($NUM1+1))
   done

  echo
}

if [ -n "$FILE" -a -e "$FILE" ]; then
  Lookup > "$FILE"  &
  exit 0
else
  Lookup
  exit 0
fi

Class_Lookup (last edited 2008-07-14 09:55:40 by localhost)