die "Bad IP address '$ip'\n" unless $ip && $ip =~ /^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/ && !grep { $_ < 0 || $_ > 255 } split(/\./, $ip);