mod_perl logo perl icon
previous page: APR::Finfo - Perl API for APR fileinfo structurepage up: mod_perl 2.0 APInext page: APR::OS - Perl API for Platform-specific APR API

APR::IpSubnet - Perl API for accessing APRs ip_subnet structures






Writing Apache Modules with Perl and C

Writing Apache Modules with Perl and C

By Lincoln Stein, Doug MacEachern
Embedding Perl in HTML with Mason

Embedding Perl in HTML with Mason

By Dave Rolsky, Ken Williams
mod_perl2 User's Guide

mod_perl2 User's Guide

By Stas Bekman, Jim Brandt
Practical mod_perl

Practical mod_perl

By Stas Bekman, Eric Cholet
The mod_perl Developer's Cookbook

The mod_perl Developer's Cookbook

By Geoffrey Young, Paul Lindner, Randy Kobes
mod_perl Pocket Reference

mod_perl Pocket Reference

By Andrew Ford


Table of Contents

Synopsis

  use APR::IpSubnet ();
  
  my $ipsub = APR::IpSubnet->new($pool, "127.0.0.1");
  $ok = $ipsub->test($sock_addr);


TOP

Description

APR::IpSubnet object represents a range of IP addresses (IPv4/IPv6). A socket connection can be matched against this range to test whether the IP it's coming from is inside or outside of this range.



TOP

API

APR::IpSubnet provides the following functions and/or methods:



TOP

new

Create an IP subnet represenation object

  $ipsubnet = APR::IpSubnet->new($pool, $ip);
  $ipsubnet = APR::IpSubnet->new($pool, $ip, $mask_or_numbits);


TOP

test

Test the IP address in the socket address object against a pre-built ip-subnet representation.

  $ret = $ipsub->test($sockaddr);

This method is used for testing whether or not an address is within a subnet. It's used by module mod_access to check whether the client IP fits into the IP range, supplied by Allow/Deny directives.

Example:

Allow accesses only from the localhost (IPv4):

  use APR::IpSubnet ();
  use Apache2::Connection ();
  use Apache2::RequestRec ();
  my $ipsub = APR::IpSubnet->new($r->pool, "127.0.0.1");
  ok $ipsub->test($r->connection->remote_addr);


TOP

See Also

mod_perl 2.0 documentation.



TOP

Copyright

mod_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0.



TOP

Authors

The mod_perl development team and numerous contributors.






TOP
previous page: APR::Finfo - Perl API for APR fileinfo structurepage up: mod_perl 2.0 APInext page: APR::OS - Perl API for Platform-specific APR API