bash:functions:ip_validity
This is an old revision of the document!
BASH - Functions - IP Validity
#!/usr/bin/env bash ip=${1:-1.2.3.4} ip_valid() { # Set up local variables local ip=${1:-1.2.3.4} local IFS=.; local -a a=($ip) # Start with a regex format test [[ $ip =~ ^[0-9]+(\.[0-9]+){3}$ ]] || return 1 # Test values of quads local quad for quad in {0..3}; do [[ "${a[$quad]}" -gt 255 ]] && return 1 done return 0 } if ip_valid "$ip"; then echo "success ($ip)" exit 0 else echo "fail ($ip)" exit 1 fi
NOTE: Alternative regex is to change:
[[ $ip =~ ^[0-9]+(\.[0-9]+){3}$ ]] || return 1
to
[[ $ip =~ ^[0-9]{1,3}(\.[0-9]{1,3}){3}$ ]] || return 1
to avoid leading zeroes in a quad.
bash/functions/ip_validity.1610193173.txt.gz · Last modified: 2021/01/09 11:52 by peter