*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> getifaddrs (3)              
Title
Content
Arch
Section
 

GETIFADDRS(3)

Contents


NAME    [Toc]    [Back]

     getifaddrs - get interface addresses

SYNOPSIS    [Toc]    [Back]

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

     int
     getifaddrs(struct ifaddrs **ifap);

     void
     freeifaddrs(struct ifaddrs *ifap);

DESCRIPTION    [Toc]    [Back]

     The getifaddrs() function stores a  reference  to  a  linked
list of the network
  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_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 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 nonP2P interfaces,
  references  the broadcast address associated
with ifa_addr,
             if one exists, otherwise it is NULL.

     ifa_dstaddr
             References the destination address on a  P2P  interface, if one exists,
 otherwise it is NULL.

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

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

RETURN VALUES    [Toc]    [Back]

     Upon successful completion, a value of 0 is returned.   Otherwise, a value
     of -1 is returned and errno is set to indicate the error.

ERRORS    [Toc]    [Back]

     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(3).

SEE ALSO    [Toc]    [Back]

      
      
     ioctl(2), socket(2), sysctl(3), networking(4), ifconfig(8)

HISTORY    [Toc]    [Back]

     The  getifaddrs()  function  first  appeared in BSDI BSD/OS.
The function is
     supplied on OpenBSD since OpenBSD 2.7.

BUGS    [Toc]    [Back]

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

OpenBSD      3.6                         October     12,     1995
[ Back ]
 Similar pages
Name OS Title
krb5_make_addrport FreeBSD mange addresses in Kerberos.
krb5_max_sockaddr_size FreeBSD mange addresses in Kerberos.
krb5_parse_address FreeBSD mange addresses in Kerberos.
krb5_get_all_client_addrs FreeBSD return local addresses
krb5_print_address FreeBSD mange addresses in Kerberos.
krb5_sockaddr2address FreeBSD mange addresses in Kerberos.
krb5_sockaddr2port FreeBSD mange addresses in Kerberos.
krb5_sockaddr_uninteresting FreeBSD mange addresses in Kerberos.
krb5_h_addr2sockaddr FreeBSD mange addresses in Kerberos.
krb5_h_addr2addr FreeBSD mange addresses in Kerberos.
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service