腳本判斷字符串是否是合法IP

簡介


linux - 腳本判斷字符串是否是合法IP


寫腳本的時候,需要判斷IP是否是合法IP,再進行設置。

什麼樣子的字符串是合法 IP

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

<code>8 bit/byte *4 byte = 32 bit
/<code>

二進制範圍:

<code>00000000.00000000.00000000.00000000 - 11111111.11111111.11111111.11111111
/<code>

因此,只要判斷是在這個範圍就可以,判斷是否是合法 IP?


linux - 腳本判斷字符串是否是合法IP


腳本

分解判斷:

  • 判斷是否是ipv4格式
  • 判斷值是否合法
<code>#!/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
/<code>


linux - 腳本判斷字符串是否是合法IP


分享到:


相關文章: