良许Linux教程网 干货合集 Linux shell判断IP合法性具体方法

Linux shell判断IP合法性具体方法

运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP、邮件地址等。那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考。

u=1393632196,3983566000&fm=26&gp=0

思路:IP由四位数字组成,以点分割,每个字段不能大于255,必须符合这种格式。

方法1:

#!/bin/bash    
function check_ip() {  
   IP=$1  
   VALID_CHECK=$(echo $IP|awk -F. '$1)  
   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    
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    
function check_ip() {  
   local IP=$1  
   VALID_CHECK=$(echo $IP|awk -F. '$1)  
   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 truedo  
   read -p "Please enter IP: " IP  
   check_ip $IP  
   [ $? -eq 0 ] && break  
done

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部