Shell脚本实现IP地址合法性判断
做unix/linux下的开发,脚本编写的功力是少不了的,作为shell编程,也是博大精深的一个技术领域,这里为了学习,就写一个简单的判断IP地址是否合法的微型脚本程序,这个小程序也是非常有用的。
IP地址是32位的,可以由4个十进制数值表示,每个数值的范围都是0~255.
#!/bin/bash
#TestanIPaddressforvalidity: #Usage: # valid_ipIP_ADDRESS # if[[$?-eq0]];thenechogood;elseechobad;fi # OR # ifvalid_ipIP_ADDRESS;thenechogood;elseechobad;fi # functionvalid_ip() { local ip=$1 local stat=1
if[[$ip=~^[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}$]];then OIFS=$IFS IFS='.' ip=($ip) IFS=$OIFS [[${ip[0]}-le255&&${ip[1]}-le255/ &&${ip[2]}-le255&&${ip[3]}-le255]] stat=$? fi return$stat }
#Ifrundirectly,executesometests. if[["$(basename$0.sh)"=='valid_ip']];then ips=' 4.2.2.2 a.b.c.d 192.168.1.1 0.0.0.0 255.255.255.255 255.255.255.256 192.168.0.1 192.168.0 1234.123.123.123 ' foripin$ips do ifvalid_ip$ip;thenstat='good';elsestat='bad';fi printf"%-20s:%s/n""$ip""$stat" done fi