| GETPEERNAME(2) | System Calls Manual | GETPEERNAME(2) | 
getpeername —
#include <sys/socket.h>
int
  
  getpeername(int
    s, struct sockaddr *
    restrict name, socklen_t
    * restrict namelen);
getpeername() function returns the name of the peer
  connected to the socket s. One common use occurs when a
  process inherits an open socket, such as TCP servers forked from
  inetd(8). In this scenario,
  getpeername() is used to determine the connecting
  client's IP address.
The function takes three parameters:
sockaddr structure that will hold the
      address information for the connected peer. Normal use requires one to use
      a structure specific to the protocol family in use, such as
      sockaddr_in (IPv4) or
      sockaddr_in6 (IPv6), cast to a (struct sockaddr
      *).
    For greater portability, especially with the newer protocol
        families, the new struct sockaddr_storage should
        be used. sockaddr_storage is large enough to
        hold any of the other sockaddr_* variants. On return, it can be cast to
        the correct sockaddr type, based on the protocol family contained in its
        ss_family field.
If address information for the local end of the socket is required, the getsockname(2) function should be used instead.
If name does not point to enough space to hold the entire socket address, the result will be truncated to namelen bytes.
EBADF]EFAULT]ENOBUFS]ENOTCONN]ENOTSOCK]getpeername() function call appeared in
  4.2BSD.
| June 3, 2011 | NetBSD 10.0 |