#!/bin/bash

function dez-hex()
{
case $1 in
10) ERG="a" ;; 
11) ERG="b" ;; 
12) ERG="c" ;; 
13) ERG="d" ;; 
14) ERG="e" ;; 
15) ERG="f" ;;
*) ERG=$1;;
esac 
echo $ERG
}


function umr()
{
DEZ=$1
ERG=1

while [[ $ERG != "0" ]]
do 
ERG=$(($DEZ/2))
OUT=$(echo $(($DEZ%2)))$OUT
DEZ=$ERG
done	
for ((I=${#OUT};I<8;I++))
do       	
 PRE="${PRE}0"
done 
 echo $PRE$OUT 
}	

function dez()
{
if [[ $1 -ge 0 && $1 -le 255 && $1  =~ ^[0-9]+$ ]]
then
return 1
else
return 0
fi
}

IP=$1
[[ $# -ne 1 ]] && { echo "$0 IP" ; exit; }
TMP=$LFS
IFS="."
set $IP
[[ $# -ne 4 ]] && { echo "wrong IP Oktetts" ; exit; }
for I in $IP
do
dez $I && { echo "wrong IP Oktett" ; exit; }
done
IFS=$TMP

O1=$(echo $IP | cut -f 1 -d .)
O2=$(echo $IP | cut -f 2 -d .)
O3=$(echo $IP | cut -f 3 -d .)
O4=$(echo $IP | cut -f 4 -d .)


OX1=$(umr $O1)
OX2=$(umr $O2)
OX3=$(umr $O3)
OX4=$(umr $O4)

echo $OX1:$OX2:$OX3:$OX4


