#!/bin/bash # validate_ipv4.sh - Check if a string is a valid IPv4 address # Usage: validate_ipv4.sh # Returns: 0 if valid, 1 if invalid # Output: "valid" or "invalid" validate_ipv4() { local ip="$1" local regex='^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$' if [[ ! $ip =~ $regex ]]; then echo "invalid" return 1 fi for i in "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}" "${BASH_REMATCH[3]}" "${BASH_REMATCH[4]}"; do if (( i > 255 )); then echo "invalid" return 1 fi done echo "valid" return 0 } # Main execution if [[ $# -ne 1 ]]; then echo "Usage: $0 " >&2 exit 2 fi validate_ipv4 "$1"