NAME
Net::Works - Sane APIs for IP addresses and networks
VERSION
version 0.01
DESCRIPTION
The NetAddr::IP module is very complete, correct, and useful. However, it's API design is a bit crufty. This distro provides wrappers around NetAddr::IP that aim to address the biggest problems with that module's API, as well as adding some additional features.
This distro contains two module, Net::Works::Address and Net::Works::Network.
BIG INTEGERS
If you're using this module to work with IPv6 addresses, then you'll end up creating big integers at some point. We strongly recommend that you install Math::BigInt::GMP or Math::BigInt::Pari. The default pure Perl implementation of big integers can be very, very slow.
Net::Works VERSUS NetAddr::IP
Here are some of the key differences between the two distributions:
Separation of address from network
Net::Works
provides two classes, one for single IP addresses and one for networks (and subnets). With NetAddr::IP a single address is represented as a /32 or /128 subnet.Multiple constructors
Net::Works allows you to construct an IP address from a string ("1.2.3.4") or an integer (1097).
Next & previous IP
You can get the next and previous address from Net::Works::Address object, regardless of whether or not that address is in the same subnet.
Constructors throw exceptions
If you pass bad data to a constructor you'll get an exception.
Sane iterator and first/last
The iterator provided by Net::Works::Network has no confusing special cases. It always returns all the addresses in a network, including the network and broadcast addresses. Similarly, the
$network->first()
and$network->last()
do not return different results for different sized networks.Split a range into subnets
The Net::Works::Network class provides a
Net::Works::Network->range_as_subnets
method that takes a start and end IP address and splits this into a set of subnets that include all addresses in the range.Does less
This distro does not wrap every method provided by NetAddr::IP. Patches to add more wrappers are welcome, however.
BUGS
Please report any bugs or feature requests to bug-net-works@rt.cpan.org
, or through the web interface at http://rt.cpan.org. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
AUTHORS
Dave Rolsky <autarch@urth.org>
Olaf Alders <olaf@wundercounter.com>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2012 by MaxMind, Inc..
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)