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

FreeBSD Manual Pages

  
 
  

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

NAME
       Tie::NetAddr::IP	- Implements a Hash where the key is a subnet

SYNOPSIS
	 use Tie::NetAddr::IP;

	 my %WhereIs;

	 tie %WhereIs, Tie::NetAddr::IP;

	 $WhereIs{"10.0.10.0/24"} = "Lab, First	Floor";
	 $WhereIs{"10.0.20.0/24"} = "Datacenter, Second	Floor";
	 $WhereIs{"10.0.30.0/27"} = "Remote location";
	 $WhereIs{"0.0.0.0/0"} = "God knows where";

	 foreach $host ("10.0.10.1", "10.0.20.15", "10.0.32.17", "10.10.0.1") {
	    print "Host	$host is in ", $WhereIs{$host},	"\n";
	 }

	 foreach $subnet (keys %WhereIs) {
	    print "Network ", $subnet, " is used in ",
	    $WhereIs{$subnet}, "\n";
	 }

	 untie %WhereIs;

DESCRIPTION
       This module overloads hashes so that the	key can	be a subnet as in
       NetAddr::IP. When looking values	up, an interpretation will be made to
       find the	given key within the subnets specified in the hash.

       The code	sample provided	on the SYNOPSIS	would print out	the locations
       of every	machine	in the "foreach" loop.

       Care must be taken, as only strings that	can be parsed as an IP address
       by NetAddr::IP can be used as keys for this hash.

       Iterators on the	hash such as "foreach",	"each",	"keys" and "values"
       will only see the actual	subnets	provided as keys to the	hash. When
       looking up a value such as in $hash{$ipaddress} this IP address will be
       looked up among the subnets existing as keys within the hash. The
       matching	subnet with the	longest	mask (ie, the most specific subnet)
       will win	and its	associated value will be returned.

       This code can be	distributed freely according to	the terms set forth in
       the PERL	license	provided that proper credit is maintained. Please send
       bug reports and feedback	to the author for further improvement.

HISTORY
       0.01
	   original version; created by	h2xs 1.19

       1.00
	   Renamed to Tie::NetAddr::IP to match	the modulelist name

       1.50
	   Modified to use NetAddr::IP v3.00. Added a number of	new tests

       1.51
	   General update. Patch from Kazuyuki Maejima to fix bug related to
	   keys, next, each, etc.

AUTHOR
       Luis E. MuA+-oz (luismunoz@cpan.org)

SEE ALSO
       perl(1),	NetAddr::IP(3).

POD ERRORS
       Hey! The	above document had some	coding errors, which are explained
       below:

       Around line 216:
	   Non-ASCII character seen before =encoding in	'MuA+-oz'. Assuming
	   CP1252

perl v5.24.1			  2003-02-09				 IP(3)

NAME | SYNOPSIS | DESCRIPTION | HISTORY | AUTHOR | SEE ALSO | POD ERRORS

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

home | help