package Data::IPV4::Range::Parse;
NAME
Data::IPV4::Range::Parse - Perl extension parsing ipv4 ranges
SYNOPSIS
use Data::IPV4::Range::Parse;
($stat_int,$end_int)=auto_parse_ipv4_range('10/24');
($stat_int,$end_int)=auto_parse_ipv4_range('10.0.0 - 11');
($stat_int,$end_int)=auto_parse_ipv4_range('9');
unless(($stat_int,$end_int)=auto_parse_ipv4_range('10/')) {
print "failed to parse 10/\n";
}
DESCRIPTION
Simple Interface for getting start and ending address of ranges as integers.
EXPORT
:CONSTANTS
ALL_BITS
MAX_CIDR
MIN_CIDR
:PARSE_IP
int_to_ip
ip_to_int
:SORT
sort_quad
sort_notations
:COMPUTE_FROM_INT
broadcast_int
base_int
size_from_mask
hostmask
cidr_to_int
:PARSE_RANGE
parse_ipv4_cidr
parse_ipv4_range
parse_ipv4_ip
auto_parse_ipv4_range
CONSTANTS
This section explains the Exportable constants.
ALL_BITS
Same as 0xffffffff
MAX_CIDR
Same as 32
MIN_CIDR
Same as 0
PARSE_IP
This section covers the parse ipv4 address functions.
my $int=ip_to_int('10.0.0.1');
my $int=Data::IPV4::Range::Parse->ip_to_int('10.0.0.1');
Returns a perl usable integer ipv4 representation of the ipv4 quad notation.
my $ip=int_to_ip($int);
my $ip=Data::IPV4::Range::Parse->int_to_ip($int);
Returns the integer formated in the standard quad notation.
SORT
This section covers the Exportable sort functions.
my @ips=sort sort_quad @usorted_ips
Low level sort function used to sort ipv4 addresses in quad notation.
my @ranges=sort sort_notations @unsorted_notations
Low level sort function used to sort ipv4 ranges. This function will croak if a range cannot be parsed.
COMPUTE_FROM_INT
This section covers the Exportable integer computation functions
my $broadcast_int=broadcast_int($ip_int,$mask_int);
my $broadcast_int=Data::IPV4::Range::Parse->broadcast_int( $ip_int, $mask_int );
Returns an integer representing the broadcast address from 2 integers.
my $base_int=base_int($ip_int,$mask_int);
my $base_int=Data::IPV4::Range::Parse->base_int( $ip_int, $mask_int );
Returns an integer representing the base address from 2 integers.
my $size=size_from_mask($mask_int)
my $size=Data::IPV4::Range::Parse->size_from_mask($mask_int)
Returns an integer representing the size of a network.
my $hostmask_int=hostmask($ip_int,$mask_int);
my $hostmask_int=Data::IPV4::Range::Parse->hostmask( $ip_int, $mask_int );
Returns an integer representing the hostmask from 2 integers.
my $mask_int=cidr_to_int(0-32);
my $mask_int=Data::IPV4::Range::Parse->cidr_to_int( 0-32 );
Returns an integer representing netmask from a given cidr size.
PARSE_RANGE
This section covers the Exportable range parser functions. An empty set is returned when the range cannot be parsed.
my ($start,$end)=parse_ipv4_cidr('10/23');
my ($start,$end)=Data::IPV4::Range::Parse->parse_ipv4_cidr( '10/23' );
Returns 2 integers representing the base and broadcast of a CIDR.
my ($start,$end)=parse_ipv4_range( '10 - 11' );
my ($start,$end)=Data::IPV4::Range::Parse->parse_ipv4_range( '10 - 11' );
Returns 2 integers representing the start and end of a ip range.
my ($start,$end)=parse_ipv4_ip('10.0.0.1')
my ($start,$end)=Data::IPV4::Range::Parse->parse_ipv4_ip( '10.0.0.1' )
Returns 2 integers representing the input ip as a /32 range
my ($start,$end)=auto_parse_ipv4_range('10');
my ($start,$end)= Data::IPV4::Range::Parse->auto_parse_ipv4_range( '10' );
Attempts to figure out what type of range notation and calls the corresponding parse_ipv4_xxx function, returning an empty set on failure or 2 integers representing the start and end of the range.
AUTHOR
Michael Shipper
SourceForge Project
As of version 1.04 the Project has been moved to SourceForge.net
COPYRIGHT AND LICENSE
Copyright (C) 2010 by Michael Shipper
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.