linux 字符串判断(linux-脚本判断字符串是否是合法IP)
简介
写脚本的时候,需要判断IP是否是合法IP,再进行设置。
什么样子的字符串是合法 IP
IPv4 使用 32 位(4 字节)地址,即
8 bit/byte *4 byte = 32 bit
二进制范围:
00000000.00000000.00000000.00000000 - 11111111.11111111.11111111.11111111
因此,只要判断是在这个范围就可以,判断是否是合法 IP?
脚本
分解判断:
- 判断是否是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
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。