Shell正则表达式验证IP地址
本机多个IP
ifconfig|awk'/inet/{print$2}'|awk-F:'{print$2}'
首先,先用这个来着
CheckIPAddress()
{
echo$1>/tmp/tmpserverip
echo$1|grep"^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$">/dev/null
if[$?=1]; then
return1
else
a=$(cut-d.-f1/tmp/tmpserverip)
b=$(cut-d.-f2/tmp/tmpserverip)
c=$(cut-d.-f3/tmp/tmpserverip)
d=$(cut-d.-f4/tmp/tmpserverip)
forloopin$a$b$c$d
do
if[$loop-ge255]||[$loop-le0];then
return2
fi
done
fi
return0
}
最初的时候,参考过下面的这些
grep"^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.$"
输入ip,检查其是否满足的ip书写规范,即不能大于255,不能有字母,和其他标点,参考网上的,自己搞了个如下,做个标记!@
echo-n'EntertheServer-ip:'
readBISSip
echo$BISSip>/tmp/tmpserverip
echo$BISSip|grep"^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$">/dev/null
num=$?
if[$num=1]
then
echoerrorip,pleaseentercorrect
else
{
a=$(cut-d.-f1/tmp/tmpserverip)
b=$(cut-d.-f2/tmp/tmpserverip)
c=$(cut-d.-f3/tmp/tmpserverip)
d=$(cut-d.-f4/tmp/tmpserverip)
{
if[$a-ge255]||[$a-le0]
then
echoa:errorip
else
echo1>/tmp/jack
fi
}
{
if[$b-ge255]||[$b-lt0]
then
echob:errorip
else
echo1>>/tmp/jack
fi
}
{if[$c-ge255]||[$c-lt0]
then
echoc:errorip
else
echo1>>/tmp/jack
fi
}
{if[$d-ge255]||[$d-le0]
then
echod:errorip
else
echo1>>/tmp/jack
fi
}