Files
troupe-standup/wizard-work/spark/validate_ipv4.sh
T

33 lines
735 B
Bash
Executable File

#!/bin/bash
# validate_ipv4.sh - Check if a string is a valid IPv4 address
# Usage: validate_ipv4.sh <IP_ADDRESS>
# 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 <IP_ADDRESS>" >&2
exit 2
fi
validate_ipv4 "$1"