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
