Manual Reference Pages - NET::IP::MATCH::XS (3)
Net::IP::Match::XS - Efficiently match IP addresses against IP ranges with C.
my $match = match_ip( $ip_addr, $match_ip1, $match_ip2, ... );
Net::IP::Match::XS is based upon, and does the same thing as Net::IP::Match.
The unconditionally exported subroutine match_ip determines if the
ip to match ( first argument ) matches any of the subsequent ip arguments.
Match arguments may be absolute quads, as 127.0.0.1, or contain
mask bits as 126.96.36.199/29.
A true return value indicates a match. It was written in C, rather than
a macro, preprocessed
through Perls source filter mechanism ( as is Net::IP::Match ), so that
the ip arguments could be traditional perl scalars. The C code is
lean and mean ( IMHO ).
Example in Apache/mod_perl
I use this module in my Apache servers mod_perl DB logging script to
determine if an incoming IP is remote or local. First, I set up
some variables in httpd.conf:
PerlSetvar DBILogger_local_ips 188.8.131.52/29
PerlAddvar DBILogger_local_ips 184.108.40.206/29
PerlAddvar DBILogger_local_ips 10.0.0.0/24
PerlAddvar DBILogger_local_ips 172.16.0.0/12
PerlAddvar DBILogger_local_ips 192.168.0.0/16
PerlAddvar DBILogger_local_ips 127.0.0.1
These are the ip addresses I want to be considered local. In the
my @local_ips = $r->dir_config( "DBILogger_local_ips" );
my $local = match_ip( $incoming_ip, @local_ips );
Now $local is just that, and I set the database key accordingly.
Net::IP::Match by Marcel Gruenauer.
Beau E. Cox, <email@example.com>
COPYRIGHT AND LICENSE
Copyright (C) 2004 by Beau E. Cox
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.6.1 or,
at your option, any later version of Perl 5 you may have available.
|perl v5.20.3 ||NET::IP::MATCH::XS (3) ||2004-12-25 |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.