Net::IP::Identifier - identify entities from IP address or network block.

For example, you might be running logwatch on your system, and you get SMTP
messages in the log files from everyone who sends you email.  For logwatch,
it's convenient to group everything coming from GMail under a single name
instead of the mutiple IP addresses used by Google.  This module lets you
identify a particular IP address (or network block) as one of a set of
'identified' entities.

Any number of plugin modules can be added to the Net/IP/Identifier/Plugin
directory.  Each plugin is dedicated to a particular entity (they must each
satisfy the Net::IP::Identifier_Role - see perldoc Role::Tiny).
Net::IP::Identifier loads all submodules found in Net/IP/Identifier/Plugin
by default, or it can be configured to use a subset of them.  Also, each
plugin can be used stand-alone if you only need to identify a particular
entity.  Parent/child relationships among network blocks is supported, but
not actually used.

This module is a modulino, meaning it can be used as either a module or as
a script.  When called as a script, pass in any number of IP addresses or
network blocks on the command line (in any of the forms acceptable to
Net::IP).  Alternatively, pass in filenames - the files are scanned for
strings that look like IP addresses or CIDR strings.  The output is
the same as the input IPs/CIDRs except that identified IPs and network
blocks are replaced by the name of the identified entity.  Unidentified IPs
and network blocks are normalized to dotted decimal or CIDR format.  IP
range notation (looking like N.N.N.N - N.N.N.N, such as often seen in WHOIS
reports) will be interpreted correctly as a network block (even with spaces
surrounding the '-').

Note that this module has the same restrictions on contiguous bits in the
bitmask as Net::IP (which this module uses heavily).  Keep in mind that a
single IP range (N.N.N.N - N.N.N.N) may require multiple netblocks in CIDR
notation (N.N.N.N/W).


INSTALLATION

To install this module, perform the following incantation

    perl Makefile.PL
    make
    make test
    make install

After installing, you can find documentation for this module with the
perldoc command:

    perldoc Net::IP::Identifier


COPYRIGHT AND LICENCE

Copyright (C) 2014, 2015 Reid Augustin

This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.