#!/usr/bin/perl use strict; my $ip = $ARGV[0] or die "Usage: $0 IP\n"; # Define the valid range from 0 to 255 for each number in the IP # Read regexp as "valid for 0-9 or 10-99 or 100-199 or 200-249 or 250-255" my $valid_number = '(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])'; # Join for valid numbers with dots my $valid = ($ip =~ m/^$valid_number\.$valid_number\.$valid_number\.$valid_number$/) ? "valid" : "invalid"; print "$valid\n";