GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  NET::IP::MATCH::XS (3)

.ds Aq ’

NAME

Net::IP::Match::XS - Efficiently match IP addresses against IP ranges with C.

CONTENTS

SYNOPSIS



  use Net::IP::Match::XS;
  my $match = match_ip( $ip_addr, $match_ip1, $match_ip2, ... );



DESCRIPTION

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 ’111.245.76.248/29’. A true return value indicates a match. It was written in C, rather than a macro, preprocessed through Perl’s 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 server’s 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 222.234.52.192/29
  PerlAddvar DBILogger_local_ips 111.245.76.248/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 mod_perl module:



  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.

    EXPORT

’match_ip’, unconditionally.

SEE ALSO

Net::IP::Match by Marcel Gruenauer.

AUTHOR

Beau E. Cox, <beaucox@hawaii.rr.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.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 NET::IP::MATCH::XS (3) 2004-12-25

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.