教你如何用 Linux Shell脚本判断IP是否合法(多种方法)
Posted ITPUB技术小栈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教你如何用 Linux Shell脚本判断IP是否合法(多种方法)相关的知识,希望对你有一定的参考价值。
来自 | 李振良的技术博客
链接 | http://t.cn/RQEqmBE
思路:IP由四位数字组成,以点分割,每个字段不能大于255,必须符合这种格式
方法1:
#!/bin/bash
# blog: http://lizhenliang.blog.51cto.com
function check_ip() { IP=$1 VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}') if echo $IP|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then if [ ${VALID_CHECK:-no} == "yes" ]; then echo "IP $IP available." else echo "IP $IP not available!" fi else echo "IP format error!" fi } # Example
check_ip 192.168.1.1
check_ip 256.1.1.1
方法2:
#!/bin/bash
# blog: http://lizhenliang.blog.51cto.com
function check_ip() { IP=$1 if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then FIELD1=$(echo $IP|cut -d. -f1) FIELD2=$(echo $IP|cut -d. -f2) FIELD3=$(echo $IP|cut -d. -f3) FIELD4=$(echo $IP|cut -d. -f4) if [ $FIELD1 -le 255 -a $FIELD2 -le 255 -a $FIELD3 -le 255 -a $FIELD4 -le 255 ]; then echo "IP $IP available." else echo "IP $IP not available!" fi else echo "IP format error!" fi } # Example
check_ip 192.168.1.1
check_ip 256.1.1.1
加个循环,如果错误则重新输入,直到正确:
#!/bin/bash
# blog: http://lizhenliang.blog.51cto.com
function check_ip() { local IP=$1 VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}') if echo $IP|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" >/dev/null; then if [ $VALID_CHECK == "yes" ]; then echo "IP $IP available!" return 0 else echo "IP $IP not available!" return 1 fi else echo "IP format error!" return 1 fi } while true; do read -p "Please enter IP: " IP check_ip $IP [ $? -eq 0 ] && break
done
《2017年度中国混合云优秀案例集锦》
现已开放下载了!
微信后台回复:混合云 即可收到下载链接
以上是关于教你如何用 Linux Shell脚本判断IP是否合法(多种方法)的主要内容,如果未能解决你的问题,请参考以下文章