my $ip ="1.133.123.123"; if (IP_valid ($ip)) {print "$ip ok\n"} else {print "$ip bad\n"} my $ip =""; if (IP_valid ($ip)) {print "$ip ok\n"} else {print "$ip bad\n"} my $ip ="1asdf1.133.123.123"; if (IP_valid ($ip)) {print "$ip ok\n"} else {print "$ip bad\n"} my $ip ="12341.133."; if (IP_valid ($ip)) {print "$ip ok\n"} else {print "$ip bad\n"} my $ip ="not at all valid"; if (IP_valid ($ip)) {print "$ip ok\n"} else {print "$ip bad\n"} sub IP_valid { my $ip = shift; $ip =~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/; foreach ($1,$2,$3,$4){ if ($_ <256 && $_ >0) {next;} return 0; } return 1; }