Shell下判断输入是否合法IP
最近在做一些服务器安全方面的shell,有用到判断输入是否合法ip地址。在网上搜了一圈,有很多做法,最简单的就是直接判断输入内容是否全部为数字和“.”符号,这样的判断太范了,无法做到准确。更准确一些的就包含了字符个数等。后来找到了一个比较严谨的做法,经验证的确可用,代码如下:
#!/bin/bash # By Chen.Zhidong # http://sillydong.com # Email:njutczd+gmail.com PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATH #Begin usage(){ echo -e "valid ipaddress\nUsage: $0 ipaddress" exit 0 } valid_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]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] stat=$? fi return $stat } if [ $# -lt 1 ];then usage else if valid_ip "$1";then echo "$1 is valid ip address" else echo "$1 is INVALID ip address" fi fi exit 0 #End
出处:http://www.linuxjournal.com/content/validating-ip-address-bash-script
看官有需求的可以参考一下。
上一篇: Android手机短信SMSC算法下一篇: 简单化Linux下find操作的脚本分享