Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

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

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)