package Data::IPV4::Range::Parse;
Data::IPV4::Range::Parse - Perl extension parsing ipv4 ranges
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"; }
Simple Interface for getting start and ending address of ranges as integers.
: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
This section explains the Exportable constants.
ALL_BITS
Same as 0xffffffff
MAX_CIDR
Same as 32
MIN_CIDR
Same as 0
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.
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.
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.
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.
Michael Shipper
As of version 1.04 the Project has been moved to SourceForge.net
Data IPV4 Range Parse
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.
To install Data::IPV4::Range::Parse, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::IPV4::Range::Parse
CPAN shell
perl -MCPAN -e shell install Data::IPV4::Range::Parse
For more information on module installation, please visit the detailed CPAN module installation guide.