http://qs321.pair.com?node_id=395505


in reply to Match a Range of IP's

Hi there:

This is a task for NetAddr::IP...

perl -MNetAddr::IP -ne 'print "$_ match\n" if NetAddr::IP->new("192.168.1/24")->contains(NetAddr::IP->new($_))'

Best regards

-lem, but some call me fokat

Replies are listed 'Best First'.
Re^2: Match a Range of IP's
by runrig (Abbot) on Sep 30, 2004 at 23:34 UTC
    NetAddr::IP->new("192.168.1/24")->contains(NetAddr::IP->new($_))
    Except that the CIDR address you have doesn't match the OP's desired range (192.168.1.0-192.168.99.255), so he'd have to run your code up to 99 times to see if the address is in that range. Or just another way (not tested):
    use Net::CIDR::Lite; my $range = Net::CIDR::Lite->new("192.168.1.0-192.168.99.255"); while (<DATA>) { chomp; print "$_\n" if $range->find($_); }