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.