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

FreeBSD Manual Pages

  
 
  

home | help
GETIFADDRS(3)	       FreeBSD Library Functions Manual		 GETIFADDRS(3)

NAME
     getifaddrs, freeifaddrs --	get interface addresses

SYNOPSIS
     #include <sys/types.h>
     #include <sys/socket.h>
     #include <ifaddrs.h>

     int
     getifaddrs(struct ifaddrs **ifap);

     void
     freeifaddrs(struct	ifaddrs	*ifap);

DESCRIPTION
     The getifaddrs() function stores a	reference to a linked list of the net-
     work interfaces on	the local machine in the memory	referenced by ifap.
     The list consists of ifaddrs structures, as defined in the	include	file
     <ifaddrs.h>.  The ifaddrs structure contains at least the following en-
     tries:

	 struct	ifaddrs	  *ifa_next;	     /*	Pointer	to next	struct */
	 char		  *ifa_name;	     /*	Interface name */
	 u_int		   ifa_flags;	     /*	Interface flags	*/
	 struct	sockaddr  *ifa_addr;	     /*	Interface address */
	 struct	sockaddr  *ifa_netmask;	     /*	Interface netmask */
	 struct	sockaddr  *ifa_broadaddr;    /*	Interface broadcast address */
	 struct	sockaddr  *ifa_dstaddr;	     /*	P2P interface destination */
	 void		  *ifa_data;	     /*	Address	specific data */

     ifa_next	    Contains a pointer to the next structure on	the list.
		    This field is set to NULL in the last structure on the
		    list.

     ifa_name	    Contains the interface name.

     ifa_flags	    Contains the interface flags, as set by ifconfig(8).

     ifa_addr	    References either the address of the interface or the link
		    level address of the interface, if one exists, otherwise
		    it is NULL.	 (The sa_family	field of the ifa_addr field
		    should be consulted	to determine the format	of the
		    ifa_addr address.)

     ifa_netmask    References the netmask associated with ifa_addr, if	one is
		    set, otherwise it is NULL.

     ifa_broadaddr  This field,	which should only be referenced	for non-P2P
		    interfaces,	references the broadcast address associated
		    with ifa_addr, if one exists, otherwise it is NULL.

     ifa_dstaddr    This field,	which should only be referenced	for P2P	inter-
		    faces, references the destination address on a P2P inter-
		    face, if one exists, otherwise it is NULL.

     ifa_data	    References address family specific data.  For AF_LINK ad-
		    dresses it contains	a pointer to the struct	if_data	(as
		    defined in include file <net/if.h>)	which contains various
		    interface attributes and statistics.  For all other	ad-
		    dress families, ifa_data is	NULL.

     The data returned by getifaddrs() is dynamically allocated	and should be
     freed using freeifaddrs() when no longer needed.

RETURN VALUES
     Upon successful completion, the value 0 is	returned; otherwise the
     value -1 is returned and the global variable errno	is set to indicate the
     error.

ERRORS
     The getifaddrs() may fail and set errno for any of	the errors specified
     for the library routines ioctl(2),	socket(2), malloc(3), or sysctl(2).

SEE ALSO
     ioctl(2), socket(2), sysctl(2), netintro(4), ifconfig(8)

HISTORY
     The getifaddrs() function first appeared in BSDI BSD/OS.  The function
     has been available	on OpenBSD since OpenBSD 2.7.

BUGS
     If	both <net/if.h>	and <ifaddrs.h>	are being included, <net/if.h> must be
     included before <ifaddrs.h>.

FreeBSD	13.0		       January 12, 2018			  FreeBSD 13.0

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

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

home | help