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 }