代码: 全选
#!/bin/bash
bc=/usr/bin/bc
awk=/bin/awk
cut=/bin/cut
echo=/bin/echo
grep=/bin/grep
ifconfig=/sbin/ifconfig
//获取IP和netmask
MyIp=`ifconfig eth0|grep "inet addr"| cut -f 2 -d ":"|cut -f 1 -d " "`
MyMask=`ifconfig eth0|grep "inet addr"| cut -f 4 -d ":"`
//转换成二进制
for ((i=1;i<=4;i++));do
Tmp=`echo $MyIp|cut -f $i -d .`
MyIp_Bin+=`echo "obase=2;$Tmp"|bc|awk '{printf("%08d\n",$0);}'`
Tmp1=`echo $MyMask|cut -f $i -d .`
MyMask_Bin+=`echo "obase=2;$Tmp1"|bc|awk '{printf("%08d\n",$0);}'`
done;
//取得广播地址和网络地址
MyMask_Lng=`echo $MyMask_Bin|cut -f 1 -d 0`
MyMask_Lng=`expr length "$MyMask_Lng"`
Tmp=`expr substr $MyIp_Bin 1 $MyMask_Lng`
MyNet=$Tmp
MyBro=$Tmp
for ((i=$MyMask_Lng;i<=32;i++));do
MyNet+="0"
MyBro+="1"
done;
//转换为十进制
MyNet=$((2#$MyNet))
MyBro=$((2#$MyBro))
//打印IP地址
for ((i=$(($MyNet+1));i<$MyBro;i++));do
Tmp=`echo "obase=2;$i"|bc`
IP1=`expr substr $Tmp 1 8`
IP1=$((2#$IP1))
IP2=`expr substr $Tmp 9 8`
IP2=$((2#$IP2))
IP3=`expr substr $Tmp 17 8`
IP3=$((2#$IP3))
IP4=`expr substr $Tmp 25 8`
IP4=$((2#$IP4))
IP="$IP1"."$IP2"."$IP3"."$IP4"
echo $IP" "$Tmp
done;
代码: 全选
192.168.0.81 110000001010100000000000010100011
192.168.0.82 110000001010100000000000010100100
192.168.0.82 110000001010100000000000010100101
192.168.0.83 110000001010100000000000010100110
192.168.0.83 110000001010100000000000010100111
192.168.0.84 110000001010100000000000010101000
192.168.0.84 110000001010100000000000010101001
192.168.0.85 110000001010100000000000010101010
192.168.0.85 110000001010100000000000010101011
192.168.0.86 110000001010100000000000010101100
192.168.0.86 110000001010100000000000010101101
192.168.0.87 110000001010100000000000010101110
192.168.0.87 110000001010100000000000010101111
192.168.0.88 110000001010100000000000010110000
192.168.0.88 110000001010100000000000010110001
192.168.0.89 110000001010100000000000010110010
192.168.0.89 110000001010100000000000010110011
192.168.0.90 110000001010100000000000010110100
192.168.0.90 110000001010100000000000010110101