#include <sys/socket.h>
#include <ifaddrs.h>
int
getifaddrs(struct ifaddrs **ifap);
void
freeifaddrs(struct ifaddrs *ifp);
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
entries:
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_dstaddr; /* P2P interface destination */
void *ifa_data; /* Address specific data */
The ifa_next field contains a pointer to the next structure on the list.
This field is NULL in last structure on the list.
The ifa_name field contains the interface name.
The ifa_flags field contains the interface flags, as set by ifconfig(8)
utility.
The ifa_addr field 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 deter-
mine the format of the ifa_addr address.)
The ifa_netmask field references the netmask associated with ifa_addr, if
one is set, otherwise it is NULL.
The ifa_dstaddr field references the destination address on a P2P inter-
face, if one exists, otherwise it contains the broadcast address.
Note that as a convenience, ifa_broadaddr is defined by a compiler
#define directive to be the same as ifa_dstaddr.
The ifa_data field references address family specific data. For AF_LINK
addresses 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 address families, it contains a pointer to the
struct ifa_data (as defined in include file <net/if.h>) which contains
per-address interface statistics.
If both <net/if.h> and <ifaddrs.h> are being included, <net/if.h> must be
included before <ifaddrs.h>.
SEE ALSO
ioctl(2), socket(2), sysctl(3), networking(4), ifconfig(8)
HISTORY
The getifaddrs implementation first appeared in BSDi BSD/OS.
BSD October 12, 1995 BSD
Man(1) output converted with
man2html
|