38 lines
839 B
Bash
Executable File
38 lines
839 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
## - Test of valid IPv4 Address
|
|
## -
|
|
## - Returns 0 if valid, > 0 otherwise
|
|
## -
|
|
is_valid_ipv4() {
|
|
local -a octets=( ${1//\./ } )
|
|
local RETURNVALUE=0
|
|
|
|
# return an error if the IP doesn't have exactly 4 octets
|
|
[[ ${#octets[@]} -ne 4 ]] && return 1
|
|
|
|
for octet in ${octets[@]}
|
|
do
|
|
if [[ ${octet} =~ ^[0-9]{1,3}$ ]]
|
|
then # shift number by 8 bits, anything larger than 255 will be > 0
|
|
((RETURNVALUE += octet>>8 ))
|
|
else # octet wasn't numeric, return error
|
|
return 1
|
|
fi
|
|
done
|
|
return ${RETURNVALUE}
|
|
}
|
|
|
|
if [ "X$@" = "X" ]; then
|
|
echo -e "\n\t\033[33m\033[1mNo argumnet given!\033[m\n"
|
|
exit 1
|
|
fi
|
|
|
|
if is_valid_ipv4 $@ ; then
|
|
echo -e "\n\t\033[32m\033[1m$@ is a valid IPv4 Address\033[m\n"
|
|
else
|
|
echo -e "\n\t\033[31m\033[1m$@ is NOT a valid IPv4 Address\033[m\n"
|
|
fi
|
|
|
|
exit
|