1# Thanks to Chris F. A. Johnson <c.f.a.johnson@rogers.com> for this one
2is_validip()
3{
4	case "$*" in
5	""|*[!0-9.]*|*[!0-9]) return 1 ;;
6	esac
7
8	local IFS=.
9	set -- $*
10
11        [ $# -eq 4 ] &&
12	    [ ${1:-666} -le 255 ] && [ ${2:-666} -le 255 ] &&
13	    [ ${3:-666} -le 255 ] && [ ${4:-666} -le 254 ]
14}
15