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

2023-11-22 0 478

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

思路: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 

本文来源:www.lxlinux.net/7463.html,若引用不当,请联系修改。

相关文章

猜你喜欢
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    文章总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 4975 +

    运行天数

你的前景,远超我们想象