isvalidip   [plain text]


# Thanks to Chris F. A. Johnson <c.f.a.johnson@rogers.com> for this one
is_validip()
{
	case "$*" in
	""|*[!0-9.]*|*[!0-9]) return 1 ;;
	esac

	local IFS=.
	set -- $*

        [ $# -eq 4 ] &&
	    [ ${1:-666} -le 255 ] && [ ${2:-666} -le 255 ] &&
	    [ ${3:-666} -le 255 ] && [ ${4:-666} -le 254 ]
}