APR::IpSubnet - Perl API for accessing APRs ip_subnet structures
use APR::IpSubnet (); my $ipsub = APR::IpSubnet->new($pool, "127.0.0.1"); $ok = $ipsub->test($sock_addr);
User Contributed Perl Documentation
build::amd64::docs::api::APR::IpSubnet(3)
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
"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);
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.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+-----------------------------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------------------------------+
|Availability | web/server/apache-24/module/apache-perl |
+---------------+-----------------------------------------+
|Stability | Uncommitted |
+---------------+-----------------------------------------+
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from
https://www.apache.org/dist/perl/mod_perl-2.0.12.tar.gz.
Further information about this software can be found on the open source
community website at https://perl.apache.org/.
perl v5.32.0 2022-01-30
build::amd64::docs::api::APR::IpSubnet(3)