通过awk查询本机IP并转换成二进制以及交互式转换二进制
通过awk自动查询地址后转换成二进制
[ root@localhost / ] # . /ip. sh
本机IP为:192.168 .131 .9
本机IP地址转换成二进制格式为:11000000.10101000 .10000011 .00001001
[ root@localhost / ] # vim ip. sh
sum= $w
for e in { 128 , 64 , 32 , 16 , 8 , 4 , 2 , 1 }
do
r= $[ $sum - $e]
if [ $r - ge 0 ] ; then
echo - n 1
sum= $r
else
echo - n 0
fi
done
echo - n "."
done
}
localip= $( ifconfig | awk 'NR==2 {print $2}' )
echo "本机IP为:$localip"
iplist= `echo $localip | awk - F "." '{print $1,$2,$3,$4}' `
list= `convert $iplist`
binformat= `echo $list | sed 's/\.$//' `
echo "本机IP地址转换成二进制格式为:$binformat"
通过函数交互转换二进制
[ root@localhost / ] # . /2. sh
请输入想要转换的IP地址:192.168 .131 .9
11000000.10101000 .10000011 .00001001
[ root@localhost / ] # . /2. sh
请输入想要转换的IP地址:12.13 .11 .244
00001100.00001101 .00001011 .11110100
[ root@localhost / ] # . /2. sh
请输入想要转换的IP地址:168.131 .250 .21
10101000.10000011 .11111010 .00010101
[ root@localhost / ] # vim 2. sh
x= `echo $1 | awk 'BEGIN {RS="."} ; {print} ' `
for a in $x
do
for ( ( i= 1 ; i<= 255 ; i+= $i) )
do
m= $[ 128 / $i]
sum= $[ $a- $m]
if [ $a - ge $m ]
then
a= $[ $a- $m]
echo - n "1"
else
echo - n "0"
fi
done
echo - e "\t"
done
}
read - p "请输入想要转换的IP地址:" p
list= "`q $p`"
echo $list | sed 's/ /./g'