http://www.perlmonks.org?node_id=395442


in reply to Match a Range of IP's

IMHO, the right way to do this is to convert all the IPs to integers and compare those. Comparing with a RE will work for most common ones, but trying to determine if 144.7.14.2 is betwen 9.0.1.244 and 199.121.5.19 is not well suited for a regular expression.
if((ip2int($iplow)<=ip2int($ip))\ &&(ip2int($ip) <=ip2int($iphigh))){ #... } sub ip2int{ my $ip=shift; my @s=split /\./,$ip return $s[3]+($s[2]+($s[1]+$s[0]*256)*256)*256; }