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
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
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.