NAME

Net::IP::AddrRanges - IP address ranges to match

SYNOPSIS

  use Net::IP::AddrRanges;
  
  my $ranges = Net::IP::AddrRanges->new();
  $ranges->add(
    '192.168.0.0/24',               # CIDR style
    '192.168.1.64/255.255.255.240', # netmask style
    '192.168.3.23',                 # single address
    '64::1/64',                     # IPv6 address range
    '192.168.5.23-192.168.12.3',    # from-to
  );
  $ranges->subtract('192.168.0.64/27'); # excludes this range

  $ranges->find('192.168.0.1');  # True 
  $ranges->find('192.168.0.70'); # False

DESCRIPTION

Net::IP::AddrRanges is to represent a list of IP address ranges.

METHODS

new()

Construct new object. any arguments are passed to add();

add(@ranges)

Adds IP address ranges to the list. this accepts single, hyphenated, netmask style and CIDR style IP address ranges.

subtract(@ranges)

Subtract IP address ranges from the list. this accepts same arguments as add()

find($ip_address)

Finds passed IP address from the list. Returns true if found, false otherwise.

AUTHOR

Rintaro Ishizaki <rintaro@cpan.org>

SEE ALSO

Net::CIDR::Lite - yet another

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.