Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
IPv4Addr(3)	      User Contributed Perl Documentation	   IPv4Addr(3)

NAME
       Net::IPv4Addr - Perl extension for manipulating IPv4 addresses.

SYNOPSIS
	 use Net::IPv4Addr qw( :all );

	 my ($ip,$cidr)	= ipv4_parse( "127.0.0.1/24" );
	 my ($ip,$cidr)	= ipv4_parse( "192.168.100.10 /	255.255.255.0" );

	 my ($net,$msk)	= ipv4_network(	"192.168.100.30" );

	 my $broadcast	= ipv4_broadcast( "192.168.100.30/26" );

	 if ( ipv4_in_network( "192.168.100.0",	$her_ip	) ) {
	   print "Welcome !";
	 }

	 etc.

DESCRIPTION
       Net::IPv4Addr provides functions	for parsing IPv4 addresses both	in
       traditional address/netmask format and in the new CIDR format.  There
       are also	methods	for calculating	the network and	broadcast address and
       also to see check if a given address is in a specific network.

ADDRESSES
       All of Net::IPv4Addr functions accepts addresses	in many	format.	The
       parsing is very liberal.

       All these addresses would be accepted:

	   127.0.0.1
	   192.168.001.010/24
	   192.168.10.10/255.255.255.0
	   192.168.30.10 / 21
	   10.0.0.0 / 255.0.0.0
	   255.255.0.0

       Those wouldn't though:

	   272.135.234.0
	   192.168/16

       Most functions accepts the address and netmask or masklength in the
       same scalar value or as separate	values.	That is	either

	   my($ip,$masklength) = ipv4_parse($cidr_str);
	   my($ip,$masklength) = ipv4_parse($ip_str,$msk_str);

USING
       No functions are	exported by default. Either use	the ":all" tag to
       import them all or explicitly import those you need.

FUNCTIONS
       ipv4_parse
	       my ($ip,$msklen)	= ipv4_parse($cidr_str);
	       my $cidr	= ipv4_parse($ip_str,$msk_str);
	       my ($ip)	= ipv4_parse($ip_str,$msk_str);

	   Parse an IPv4 address and in	scalar context the address in CIDR
	   format and in an array context the address and the mask length.

	   If the parameters doesn't contains a	netmask	or a mask length, in
	   scalar context only the IPv4	address	is returned and	in an array
	   context the mask length is undefined.

	   If the function cannot parse	its input, it croaks. Trap it using
	   "eval" if don't like	that.

       ipv4_network
	       my $cidr	= ipv4_network($ip_str);
	       my $cidr	= ipv4_network($cidr_str);
	       my ($net,$msk) =	ipv4_network( $net_str,	$msk_str);

	   In scalar context, this function returns the	network	in CIDR	format
	   in which the	address	is. In array context, it returns the network
	   address and its mask	length as a two	elements array.	If the input
	   is an host without a	netmask	of mask	length,	the default netmask is
	   assumed.

	   Again, the function croak if	the input is invalid.

       ipv4_broadcast
	       my ($broadcast) = ipv4_broadcast($ip_str);
	       my $broadcast   = ipv4_broadcast($ip_str,$msk_str);

	   This	function returns the broadcast address.	If the input doesn't
	   contains a netmask or mask length, the default netmask is assumed.

	   This	function croaks	if the input is	invalid.

       ipv4_network
	       my $cidr	= ipv4_network($net_str);
	       my $cidr	= ipv4_network($cidr_sstr);
	       my ($net,$msk) =	ipv4_network( $ip_str, $mask_str);

	   In scalar context, this function returns the	network	in CIDR	format
	   in which the	address	is. In array context, it returns the network
	   address and its mask	length as a two	elements array.	If the input
	   is an host without a	netmask	or mask	length,	the default netmask is
	   assumed.

	   Again, the function croak if	the input is invalid.

       ipv4_in_network
	       print "Yes" if ipv4_in_network( $cidr_str1, $cidr_str2);
	       print "Yes" if ipv4_in_network( $ip_str1, $mask_str1, $cidr_str2	);
	       print "Yes" if ipv4_in_network( $ip1, $mask1, $ip2, $msk2 );

	   This	function checks	if the second network is contained in the
	   first one and it implements the following semantics :

	      If net1 or net2 is a magic address (0.0.0.0 or 255.255.255.255)
	      than this	function returns true.

	      If net1 is an host, net2 will be in the same net only if
	      it is the	same host.

	      If net2 is an host, it will be contained in net1 only if
	      it is part of net1.

	      If net2 is only part of net1 if it is entirely contained in
	      net1.

	   Trap	bad input with "eval" or else.

       ipv4_checkip
	       if ($ip = ipv4_checkip($str) ) {
		   # Do	something
	       }

	   Return the IPv4 address in the string or undef if the input doesn't
	   contains a valid IPv4 address.

       ipv4_cidr2msk
	       my $netmask = ipv4_cidr2msk( $cidr );

	   Returns the netmask corresponding to	the mask length	given in
	   input.  As usual, croaks if it doesn't like your input (in this
	   case	a number between 0 and 32).

       ipv4_msk2cidr
	       my $masklen = ipv4_msk2cidr( $msk );

	   Returns the mask length of the netmask in input. As usual, croaks
	   if it doesn't like your input.

AUTHOR
       Francis J. Lacoste <francis.lacoste@iNsu.COM>

COPYRIGHT
       Copyright (c) 1999, 2000	iNsu Innovations Inc.  All rights reserved.

       This program is free software; you can redistribute it and/or modify it
       under the terms as perl itself.

SEE ALSO
       perl(1) ipv4calc(1).

perl v5.24.1			  2000-08-01			   IPv4Addr(3)

NAME | SYNOPSIS | DESCRIPTION | ADDRESSES | USING | FUNCTIONS | AUTHOR | COPYRIGHT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Net::IPv4Addr&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help