man APR::IpSubnet () - Perl API for accessing APRs ip_subnet structures

NAME

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

Synopsis

  use APR::IpSubnet ();

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

Description

CWAPR::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

CWAPR::IpSubnet provides the following functions and/or methods: Create an IP subnet represenation object

  $ipsubnet = APR::IpSubnet->new($pool, $ip);
  $ipsubnet = APR::IpSubnet->new($pool, $ip, $mask_or_numbits);
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. 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. The IP-subnet object
since: 2.0.00
Test the IP address in the socket address object against a pre-built ip-subnet representation.

  $ret = $ipsub->test($sockaddr);
The ip-subnet representation The socket address to test 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 CWmod_access to check whether the client IP fits into the IP range, supplied by CWAllow/CWDeny 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);

See Also

mod_perl 2.0 documentation.

Copyright

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

Authors

The mod_perl development team and numerous contributors.