docs::a...pSubnet(3)

πŸ“¦ version 2.0.13, in nixos 26.05, nixpkgs unstable

πŸ’– NAME πŸ’–

okay so this page is docs::a...pSubnet(3) β€” yes, a User Contributed Perl Documentation page β€” and it's all about APR::IpSubnet: the 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 πŸ¦‹

An APR::IpSubnet object is literally a whole range of IP addresses (IPv4/IPv6). You can match a socket connection against this range to test whether the IP it's coming from is inside or outside of this range. It's giving IP vibe check, no cap. πŸ’…

🌸 API 🌸

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

πŸŽ€ "new" πŸŽ€

Create an IP subnet representation 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 ) β€” the 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.

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.


and that's the whole page, bestie! πŸ’– This was docs::a...pSubnet(3), from perl v5.42.3, dated 2023-10-21. πŸŽ€βœ¨

πŸ“¦ where this page comes from