Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GETPEERNAME(2)		    BSD	System Calls Manual		GETPEERNAME(2)

NAME
     getpeername -- get	name of	connected peer

SYNOPSIS
     #include <sys/socket.h>

     int
     getpeername(int s,	struct sockaddr	*name, socklen_t *namelen);

DESCRIPTION
     getpeername() returns the address information of the peer connected to
     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.

     getpeername() takes three parameters:

     s contains	the file descriptor of the socket whose	peer should be looked
     up.

     name points to a sockaddr structure that will hold	the address informa-
     tion 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	con-
     tained in its ss_family field.

     namelen indicates the amount of space pointed to by name, in bytes.

     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.

RETURN VALUES
     If	the call succeeds, a 0 is returned and namelen is set to the actual
     size of the socket	address	returned in name.  Otherwise, errno is set and
     a value of	-1 is returned.

ERRORS
     On	failure, errno is set to one of	the following:

     [EBADF]		The argument s is not a	valid descriptor.

     [ENOTSOCK]		The argument s is a file, not a	socket.

     [ENOTCONN]		The socket is not connected.

     [ENOBUFS]		Insufficient resources were available in the system to
			perform	the operation.

     [EFAULT]		The name or namelen parameter points to	memory not in
			a valid	part of	the process address space.

SEE ALSO
     accept(2),	bind(2), getsockname(2), socket(2), getpeereid(3)

STANDARDS
     The getpeername() function	conforms to IEEE Std 1003.1-2008 ("POSIX.1").

HISTORY
     The getpeername() function	call appeared in 4.2BSD.

BSD			      September	10, 2015			   BSD

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=getpeername&sektion=2&manpath=OpenBSD+6.5>

home | help