User Tools

Site Tools


bash:functions:ip_validity

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

or

^[1-9][0-9]{,2}(\.[1-9][0-9]{,2}){3}$

to avoid leading zeroes in a quad.

bash/functions/ip_validity.txt · Last modified: 2021/01/09 11:53 by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki