Net::IP::Resolver - Resolve IPs to a particular network


Net-IP-Resolver documentation  | view source Contained in the Net-IP-Resolver distribution.

Index


NAME

Top

Net::IP::Resolver - Resolve IPs to a particular network

SYNOPSIS

Top

  # Create the resolver and add some networks
  my $resolver = Net::IP::Resolve->new;
  $resolver->add( 'Comcast' => '123.0.0.0/8', '124.128.0.0/10' );
  $resolver->add( 'Foobar'  => [ '1.2.3.0/24', '1.2.4.0/24' ] );

  # Check an IP
  my $ip = '123.123.123.123';
  my $network = $resolver->find_first( $ip );
  print "IP $ip is in network $network";

  # prints... "IP 123.123.123.123 is in network Comcast";

DESCRIPTION

Top

Net::IP::Resolver provides a mechanism for registering a number of different networks (specified by a set of ip ranges), and then finding the network for a given IP based on this specification.

The identifier for a network can be any defined value that you wish.

Thus you can resolve to numeric identifiers, names, or even to objects representing the networks.

METHODS

Top

new

The new constructor takes no arguments, and create a new and empty resolver.

Returns a new Net::IP::Resolver object.

add $network, $range, ...

The add method adds a network to the resolver. It takes as argument an identifier for the network, which can be any defined value, including an object of any type, followed by a set of 1 or more IP ranges, in the format used by Net::IP::Match::XS (which this class uses for the actual ip matching).

Returns true if the network was added, or undef if passed incorrect arguments.

find_first $ip

The find_first method takes an IP address as argument, and checks it against each network to find the first one that matches.

The assumption made by find_first is that each network in the resolver occupies a unique and non-overlapping set of ranges, and thus only any ip can only ever resolve to one network

Returns the network identifier as originally provided, or undef if the ip is not provided, or the resolver cannot match it to any network.

SUPPORT

Top

All bugs should be filed via the bug tracker at

http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-IP-Resolver

For other issues, or commercial enhancement and support, contact the author

AUTHORS

Top

Adam Kennedy <adamk@cpan.org>

SEE ALSO

Top

Net::IP, Net::IP::Match::XS, http://ali.as/

COPYRIGHT

Top


Net-IP-Resolver documentation  | view source Contained in the Net-IP-Resolver distribution.