APR::IpSubnet(3pm)

APR::IpSubnet3pm

Perl api for accessing aprs ip_subnet structures

Usage

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

Overview

"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.

API

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

"new"

Create an IP subnet represenation object

  $ipsubnet = APR::IpSubnet->new($pool, $ip);
  $ipsubnet = APR::IpSubnet->new($pool, $ip, $mask_or_numbits);
obj: "APR::IpSubnet" (class name)
arg1: $pool ( "APR::Pool object" )
arg2: $ip ( string )

IP address in one of the two formats: IPv4 (e.g. "127.0.0.1") or IPv6 (e.g. "::1"). IPv6 addresses are accepted only if APR has the IPv6 support enabled.

opt arg3: $mask_or_numbits ( string )

An optional IP mask (e.g. "255.0.0.0") or number of bits (e.g. "15").

If none provided, the default is not to mask off.

ret: $ret ( "APR::IpSubnet object" )

The IP-subnet object

excpt: "APR::Error"
since: 2.0.00

"test"

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

  $ret = $ipsub->test($sockaddr);
obj: $ipsub ( "APR::IpSubnet object" )

The ip-subnet representation

arg1: $sockaddr ( "APR::SockAddr object" )

The socket address to test

ret: $ret ( boolean )

true if the socket address is within the subnet, false otherwise

since: 2.0.00

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);

Releases

10 releases since Debian 4.0 (Etch); the text changed 9 times.

  1. 4.0
  2. 5.0
  3. 6.0
  4. 7
  5. 8
  6. 9
  7. 10
  8. 11
  9. 12
  10. 13

Authors

The mod_perl development team and numerous contributors.

From libapache2-mod-perl2 2.0.13-2+b2 in Debian 13 (Trixie). Parsed by carta from the page's man source.