shell处理IP与NETMASK
shell处理IP地址
#!/bin/bash
CheckIpAddress()
{
echo $1 | grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null
if [ $? == 1 ]
then
return 6000
else
a=$(echo $1|awk -F "." '{print $1}')
b=$(echo $1|awk -F "." '{print $2}')
c=$(echo $1|awk -F "." '{print $3}')
d=$(echo $1|awk -F "." '{print $4}')
for loop in $a $b $c $d
do
if [ $loop -gt 255 ] || [ $loop -lt 0 ]
then
return 6000
fi
done
fi
return 0
}
CheckIpAddress $1
echo $? 如果返回值为0为IP地址,如果返回值为0以外的值则不是IP地址
shell处理子网掩码
如需使用此脚本需要安装bc命令 yum install -y bc
原理就是先检查是不是IP地址,然后再去匹配子网掩码规则,
#!/bin/bash
CheckIpAddress()
{
echo $1 | grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null
if [ $? == 1 ]
then
return 6000
else
a=$(echo $1|awk -F "." '{print $1}')
b=$(echo $1|awk -F "." '{print $2}')
c=$(echo $1|awk -F "." '{print $3}')
d=$(echo $1|awk -F "." '{print $4}')
for loop in $a $b $c $d
do
if [ $loop -gt 255 ] || [ $loop -lt 0 ]
then
return 6000
fi
done
fi
return 0
}
CheckNetmask()
{
CheckIpAddress $1
if [ $? == 0 ]
then
a=$(echo $1|awk -F "." '{print $1}')
b=$(echo $1|awk -F "." '{print $2}')
c=$(echo $1|awk -F "." '{print $3}')
d=$(echo $1|awk -F "." '{print $4}')
for loop in $a $b $c $d
do
item=`echo "obase=2;$loop"|bc`
len=`echo ${#item}`
if [ $len -ne 8 ]
then
zeronum=""
for ((i=1;i<=(8-$len);i++))
do
zeronum+="0"
done
item=$item$zeronum
fi
temp+=$item
done
echo $temp | grep "01" > /dev/null
if [ $? -eq 0 ]
then
return 6001
else
return 0
fi
else
return 6001
fi
}
CheckNetmask $1
echo $? 如果返回值为0为子网掩码地址,如果返回值为0以外的值则不是子网掩码地址