NAME
APR::IpSubnet - Perl API for accessing APRs ipsubnet structures
SSyynnooppssiissuse APR::IpSubnet ();
my $ipsub = APR::IpSubnet->new($pool, "127.0.0.1");
$ok = $ipsub->test($sockaddr);
DDeessccrriippttiioonn"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. AAPPII"APR::IpSubnet" provides the following functions and/or methods:
""nneeww"" Create an IP subnet represenation object$ipsubnet = APR::IpSubnet->new($pool, $ip);
$ipsubnet = APR::IpSubnet->new($pool, $ip, $maskornumbits);
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: $maskornumbits ( 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 ""tteesstt""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 testret: $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 "modaccess" 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->remoteaddr);
SSeeee AAllssoo modperl 2.0 documentation. CCooppyyrriigghhtt modperl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0. AAuutthhoorrss The modperl development team and numerous contributors.perl v5.8.8apachemodperl-101.1~2:2:0m0o5d-1p0e-r2l0-2.0.2::docs::api::APR::IpSubnet(3)