#!/bin/sh if [ "$*" == "" ] then echo "Reini´s Netcalc Ver1.0" echo `basename $0`" IPAdresse/Switch" echo "oder" echo `basename $0`" IPAdresse Anzahl" echo "oder" echo `basename $0`" -m IPAdresse NetMask" echo "" echo "Example1.:" echo `basename $0`" 192.168.10.20/30" echo "Example2.:" echo `basename $0`" 192.168.10.20 4" echo "Example3.:" echo `basename $0`" -m 192.168.10.20 255.255.255.252" exit fi nmask=`echo ""` input=`echo $*` isscha=`echo $input|grep "/"` zaehl=1 zaehl2=1 zaehl3=1 zaehl4=1 wert2=2 wert22=2 wert23=2 wert24=2 if [ "$1" == "-m" ] then f1=`echo $3|cut -f1 -d"."` f2=`echo $3|cut -f2 -d"."` f3=`echo $3|cut -f3 -d"."` f4=`echo $3|cut -f4 -d"."` if [ "$f1" != "255" ] then let anz=255-f1 let anza=255*255*255*anz $0 $2 $anza exit fi if [ "$f2" != "255" ] then let anz=255-f2 let anza=255*255*anz $0 $2 $anza exit fi if [ "$f3" != "255" ] then let anz=255-f3 let anza=255*anz $0 $2 $anza exit fi if [ "$f4" != "255" ] then let anz=255-f4 let anza=1*anz $0 $2 $anza exit fi fi if [ "$isscha" == "" ] then anza=`echo $input|cut -f2 -d" "` ip=`echo $input|cut -f1 -d" "` let a=anza-1 l=`echo -e "obase=2;$a" | bc|wc -c` let ra=l-1 let re=32-ra $0 $ip"/"$re echo "Mask = $ip"/"$re" exit fi if [ "$isscha" != "" ] then schalter=`echo $input|cut -f2 -d"/"` ipa=`echo $input|cut -f1 -d"/"` fi pos1=`echo $ipa|cut -f1 -d"."` pos2=`echo $ipa|cut -f2 -d"."` pos3=`echo $ipa|cut -f3 -d"."` pos4=`echo $ipa|cut -f4 -d"."` if [ "$schalter" -gt "32" ] then echo Zu hoher Wert exit fi if [ "$schalter" != "" ] then let pos=schalter/8 if [ "$pos" -eq "0" ] then let wert4=8-schalter if [ "$wert4" -eq "0" ] then wert24=0 fi while : do if [ "$wert4" -le "$zaehl4" ] then break fi let zaehl4=zaehl4+1 let wert24=wert24*2 done reip4=`echo $ipa|cut -f1 -d"."` if [ "$wert24" -gt "1" ] then let wert34=wert24-1 else wert34=$wert24 fi let reipa4=reip4+wert34 if [ "$reipa4" -gt "255" ] then reip4=0 reipa4=255 fi pos1=`echo $reip4"-"$reipa4` pos2=0-255 pos3=0-255 pos4=0-255 let anzahl=$wert24*256*256*256 if [ "$nmask" == "" ] then let mask=256-wert24 nmask=`echo "$mask".0.0.0` fi fi if [ "$pos" -eq "1" ] then let wert3=16-schalter if [ "$wert3" -eq "0" ] then wert23=0 fi while : do if [ "$wert3" -le "$zaehl3" ] then break fi let zaehl3=zaehl3+1 let wert23=wert23*2 done reip3=`echo $ipa|cut -f2 -d"."` if [ "$wert23" -gt "1" ] then let wert33=wert23-1 else wert33=$wert23 fi let reipa3=reip3+wert33 if [ "$reipa3" -gt "255" ] then reip3=0 reipa3=255 fi pos2=`echo $reip3"-"$reipa3` pos3=0-255 pos4=0-255 let anzahl=$wert23*256*256 if [ "$nmask" == "" ] then let mask=256-wert23 nmask=`echo 255."$mask".0.0` fi fi if [ "$pos" -eq "2" ] then let wert2=24-schalter if [ "$wert2" -eq "0" ] then wert22=0 fi while : do if [ "$wert2" -le "$zaehl2" ] then break fi let zaehl2=zaehl2+1 let wert22=wert22*2 done reip2=`echo $ipa|cut -f3 -d"."` if [ "$wert22" -gt "1" ] then let wert32=wert22-1 else wert32=$wert22 fi let reipa2=reip2+wert32 if [ "$reipa2" -gt "255" ] then reip2=0 reipa2=255 fi pos3=`echo $reip2"-"$reipa2` pos4=0-255 let anzahl=$wert22*256 if [ "$nmask" == "" ] then let mask=256-wert22 nmask=`echo 255.255."$mask".0` fi fi if [ "$pos" -ge "3" ] then let wert=32-schalter if [ "$wert" -eq "0" ] then wert2=0 fi while : do if [ "$wert" -le "$zaehl" ] then break fi let zaehl=zaehl+1 let wert2=wert2*2 done reip=`echo $ipa|cut -f4 -d"."` if [ "$wert2" -gt "1" ] then let wert3=wert2-1 else wert3=$wert2 fi let reipa=reip+wert3 if [ "$reipa" -gt "255" ] then reip=0 reipa=255 fi pos4=`echo $reip"-"$reipa` anzahl=$wert2 if [ "$nmask" == "" ] then if [ "$wert2" == "0" ] then wert2=1 fi let mask=256-wert2 nmask=`echo 255.255.255.$mask` fi fi echo "Reini´s Netcalc Ver1.0" echo "Bereich = "$pos1"."$pos2"."$pos3"."$pos4 echo "Anzahl der Adressen = "$anzahl echo "Netmask = "$nmask fi