---
name: "APR::SockAddr"
section: "3pm"
platform: "linux"
package: "libapache2-mod-perl2"
version: "2.0.13-2+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/APR::SockAddr"
---

# APR::SockAddr(3pm)

Perl API for APR socket address structure

## NAME

APR::SockAddr - Perl API for APR socket address structure

## Synopsis

```
  use APR::SockAddr ();

  my $ip = $sock_addr->ip_get;
  my $port = $sock_addr->port;
```

## Description

`"APR::SockAddr"` provides an access to a socket address structure fields.

Normally you'd get a socket address object, by calling:

```
  use Apache2::Connection ();
  my $remote_sock_addr = $c->remote_addr;
  my $local_sock_addr  = $c->remote_local;
```

## API

`"APR::SockAddr"` provides the following functions and/or methods:

### "ip\_get"

Get the IP address of the socket

```
  $ip = $sock_addr->ip_get();
```

- obj: $sock\_addr ( "APR::SockAddr object" )

  - ret: $ip ( string )

  - since: 2.0.00

  If you are familiar with how perl's `"Socket"` works:

```
  use Socket 'sockaddr_in';
  my ($serverport, $serverip) = sockaddr_in(getpeername($local_sock));
  my ($remoteport, $remoteip) = sockaddr_in(getpeername($remote_sock));
```

in apr-speak that'd be written as:

```
  use APR::SockAddr ();
  use Apache2::Connection ();
  my $serverport = $c->local_addr->port;
  my $serverip   = $c->local_addr->ip_get;
  my $remoteport = $c->remote_addr->port;
  my $remoteip   = $c->remote_addr->ip_get;
```

### "port"

Get the IP address of the socket

```
  $port = $sock_addr->port();
```

- obj: $sock\_addr ( "APR::SockAddr object" )

  - ret: $port ( integer )

  - since: 2.0.00

  Example: see `ip_get()`

## Unsupported API

`"APR::SockAddr"` also provides auto-generated Perl interface for a few other methods which aren't tested at the moment and therefore their API is a subject to change. These methods will be finalized later as a need arises. If you want to rely on any of the following methods please contact the the mod\_perl development mailing list so we can help each other take the steps necessary to shift the method to an officially supported API.

### "equal"

META: Autogenerated - needs to be reviewed/completed

See if the IP addresses in two APR socket addresses are equivalent.  Appropriate logic is present for comparing IPv4-mapped IPv6 addresses with IPv4 addresses.

```
  $ret = $addr1->equal($addr2);
```

- obj: $addr1 ( "APR::SockAddr object" )

  One of the APR socket addresses.

- arg1: $addr2 ( "APR::SockAddr object" )

  The other APR socket address.

- ret: $ret ( integer )

  - since: subject to change

  The return value will be non-zero if the addresses are equivalent.

## 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.
