linux 字符串判断(linux-脚本判断字符串是否是合法IP)

简介

linux 字符串判断(linux-脚本判断字符串是否是合法IP)(1)

写脚本的时候,需要判断IP是否是合法IP,再进行设置。

什么样子的字符串是合法 IP

IPv4 使用 32 位(4 字节)地址,即

8 bit/byte *4 byte = 32 bit

二进制范围:

00000000.00000000.00000000.00000000 - 11111111.11111111.11111111.11111111

因此,只要判断是在这个范围就可以,判断是否是合法 IP?

linux 字符串判断(linux-脚本判断字符串是否是合法IP)(2)

脚本

分解判断:

  • 判断是否是ipv4格式
  • 判断值是否合法

#!/bin/bash ip=$1 if [ "$ip" == "" ]; then echo "usage : $0 ip" exit 1 fi err_mssage="$ip is invalid ipv4" if !( echo $ip | grep -E ^[[:digit:]].[[:digit:]].[[:digit:]].[[:digit:]]$ >>/dev/null); then echo $err_mssage exit 1 fi place1=$(echo $ip | awk -F "." {print $1}) place2=$(echo $ip | awk -F "." {print $2}) place3=$(echo $ip | awk -F "." {print $3}) place4=$(echo $ip | awk -F "." {print $4}) function check_number() { number=$1 if [[ $number -ge 0 && $number -le 255 ]]; then return 0 fi echo $err_mssage return 1 } check_number $place1 || exit 1 check_number $place2 || exit 1 check_number $place3 || exit 1 check_number $place4 || exit 1 echo $ip is ipv4

linux 字符串判断(linux-脚本判断字符串是否是合法IP)(3)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。