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
Net::IP::Match::XS(3) User Contributed Perl Documentation Net::IP::Match::XS(3)

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

  use Net::IP::Match::XS;
  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 '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 ).

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.

'match_ip', unconditionally.

Net::IP::Match by Marcel Grünauer.

Beau E. Cox, <beaucox@hawaii.rr.com>

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.

2004-12-25 perl v5.32.1

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

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