123ba0142SJun-ichiro itojun Hagino.\" $KAME: getifaddrs.3,v 1.4 2000/05/17 14:13:14 itojun Exp $ 223ba0142SJun-ichiro itojun Hagino.\" BSDI getifaddrs.3,v 2.5 2000/02/23 14:51:59 dab Exp 323ba0142SJun-ichiro itojun Hagino.\" 423ba0142SJun-ichiro itojun Hagino.\" Copyright (c) 1995, 1999 523ba0142SJun-ichiro itojun Hagino.\" Berkeley Software Design, Inc. All rights reserved. 623ba0142SJun-ichiro itojun Hagino.\" 723ba0142SJun-ichiro itojun Hagino.\" Redistribution and use in source and binary forms, with or without 823ba0142SJun-ichiro itojun Hagino.\" modification, are permitted provided that the following conditions 923ba0142SJun-ichiro itojun Hagino.\" are met: 1023ba0142SJun-ichiro itojun Hagino.\" 1. Redistributions of source code must retain the above copyright 1123ba0142SJun-ichiro itojun Hagino.\" notice, this list of conditions and the following disclaimer. 1223ba0142SJun-ichiro itojun Hagino.\" 1323ba0142SJun-ichiro itojun Hagino.\" THIS SOFTWARE IS PROVIDED BY Berkeley Software Design, Inc. ``AS IS'' AND 1423ba0142SJun-ichiro itojun Hagino.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1523ba0142SJun-ichiro itojun Hagino.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1623ba0142SJun-ichiro itojun Hagino.\" ARE DISCLAIMED. IN NO EVENT SHALL Berkeley Software Design, Inc. BE LIABLE 1723ba0142SJun-ichiro itojun Hagino.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1823ba0142SJun-ichiro itojun Hagino.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 1923ba0142SJun-ichiro itojun Hagino.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2023ba0142SJun-ichiro itojun Hagino.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2123ba0142SJun-ichiro itojun Hagino.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2223ba0142SJun-ichiro itojun Hagino.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2323ba0142SJun-ichiro itojun Hagino.\" SUCH DAMAGE. 246b806d21SRuslan Ermilov.\" 25*ac071896SSergey Kandaurov.Dd November 25, 2014 2623ba0142SJun-ichiro itojun Hagino.Dt GETIFADDRS 3 27a2fd3702SRuslan Ermilov.Os 2823ba0142SJun-ichiro itojun Hagino.Sh NAME 2923ba0142SJun-ichiro itojun Hagino.Nm getifaddrs 3023ba0142SJun-ichiro itojun Hagino.Nd get interface addresses 3123ba0142SJun-ichiro itojun Hagino.Sh SYNOPSIS 3232eef9aeSRuslan Ermilov.In ifaddrs.h 3323ba0142SJun-ichiro itojun Hagino.Ft int 3423ba0142SJun-ichiro itojun Hagino.Fn getifaddrs "struct ifaddrs **ifap" 3523ba0142SJun-ichiro itojun Hagino.Ft void 3623ba0142SJun-ichiro itojun Hagino.Fn freeifaddrs "struct ifaddrs *ifp" 3723ba0142SJun-ichiro itojun Hagino.Sh DESCRIPTION 3823ba0142SJun-ichiro itojun HaginoThe 3923ba0142SJun-ichiro itojun Hagino.Fn getifaddrs 4023ba0142SJun-ichiro itojun Haginofunction stores a reference to a linked list of the network interfaces 4123ba0142SJun-ichiro itojun Haginoon the local machine in the memory referenced by 4223ba0142SJun-ichiro itojun Hagino.Fa ifap . 4323ba0142SJun-ichiro itojun HaginoThe list consists of 4423ba0142SJun-ichiro itojun Hagino.Nm ifaddrs 4523ba0142SJun-ichiro itojun Haginostructures, as defined in the include file 46fe08efe6SRuslan Ermilov.In ifaddrs.h . 4723ba0142SJun-ichiro itojun HaginoThe 4823ba0142SJun-ichiro itojun Hagino.Nm ifaddrs 4923ba0142SJun-ichiro itojun Haginostructure contains at least the following entries: 5023ba0142SJun-ichiro itojun Hagino.Bd -literal 5123ba0142SJun-ichiro itojun Hagino struct ifaddrs *ifa_next; /* Pointer to next struct */ 5223ba0142SJun-ichiro itojun Hagino char *ifa_name; /* Interface name */ 5323ba0142SJun-ichiro itojun Hagino u_int ifa_flags; /* Interface flags */ 5423ba0142SJun-ichiro itojun Hagino struct sockaddr *ifa_addr; /* Interface address */ 5523ba0142SJun-ichiro itojun Hagino struct sockaddr *ifa_netmask; /* Interface netmask */ 5623ba0142SJun-ichiro itojun Hagino struct sockaddr *ifa_broadaddr; /* Interface broadcast address */ 5723ba0142SJun-ichiro itojun Hagino struct sockaddr *ifa_dstaddr; /* P2P interface destination */ 5823ba0142SJun-ichiro itojun Hagino void *ifa_data; /* Address specific data */ 5923ba0142SJun-ichiro itojun Hagino.Ed 6023ba0142SJun-ichiro itojun Hagino.Pp 6123ba0142SJun-ichiro itojun HaginoThe 6223ba0142SJun-ichiro itojun Hagino.Li ifa_next 6323ba0142SJun-ichiro itojun Haginofield contains a pointer to the next structure on the list. 6423ba0142SJun-ichiro itojun HaginoThis field is 6523ba0142SJun-ichiro itojun Hagino.Dv NULL 6623ba0142SJun-ichiro itojun Haginoin last structure on the list. 6723ba0142SJun-ichiro itojun Hagino.Pp 6823ba0142SJun-ichiro itojun HaginoThe 6923ba0142SJun-ichiro itojun Hagino.Li ifa_name 7023ba0142SJun-ichiro itojun Haginofield contains the interface name. 7123ba0142SJun-ichiro itojun Hagino.Pp 7223ba0142SJun-ichiro itojun HaginoThe 7323ba0142SJun-ichiro itojun Hagino.Li ifa_flags 7423ba0142SJun-ichiro itojun Haginofield contains the interface flags, as set by 7523ba0142SJun-ichiro itojun Hagino.Xr ifconfig 8 7623ba0142SJun-ichiro itojun Haginoutility. 7723ba0142SJun-ichiro itojun Hagino.Pp 7823ba0142SJun-ichiro itojun HaginoThe 7923ba0142SJun-ichiro itojun Hagino.Li ifa_addr 8023ba0142SJun-ichiro itojun Haginofield references either the address of the interface or the link level 8123ba0142SJun-ichiro itojun Haginoaddress of the interface, if one exists, otherwise it is NULL. 8223ba0142SJun-ichiro itojun Hagino(The 8323ba0142SJun-ichiro itojun Hagino.Li sa_family 8423ba0142SJun-ichiro itojun Haginofield of the 8523ba0142SJun-ichiro itojun Hagino.Li ifa_addr 8623ba0142SJun-ichiro itojun Haginofield should be consulted to determine the format of the 8723ba0142SJun-ichiro itojun Hagino.Li ifa_addr 8823ba0142SJun-ichiro itojun Haginoaddress.) 8923ba0142SJun-ichiro itojun Hagino.Pp 9023ba0142SJun-ichiro itojun HaginoThe 9123ba0142SJun-ichiro itojun Hagino.Li ifa_netmask 9223ba0142SJun-ichiro itojun Haginofield references the netmask associated with 9323ba0142SJun-ichiro itojun Hagino.Li ifa_addr , 9423ba0142SJun-ichiro itojun Haginoif one is set, otherwise it is NULL. 9523ba0142SJun-ichiro itojun Hagino.Pp 9623ba0142SJun-ichiro itojun HaginoThe 9723ba0142SJun-ichiro itojun Hagino.Li ifa_broadaddr 9823ba0142SJun-ichiro itojun Haginofield, 9923ba0142SJun-ichiro itojun Haginowhich should only be referenced for non-P2P interfaces, 10023ba0142SJun-ichiro itojun Haginoreferences the broadcast address associated with 10123ba0142SJun-ichiro itojun Hagino.Li ifa_addr , 10223ba0142SJun-ichiro itojun Haginoif one exists, otherwise it is NULL. 10323ba0142SJun-ichiro itojun Hagino.Pp 10423ba0142SJun-ichiro itojun HaginoThe 10523ba0142SJun-ichiro itojun Hagino.Li ifa_dstaddr 10623ba0142SJun-ichiro itojun Haginofield references the destination address on a P2P interface, 10723ba0142SJun-ichiro itojun Haginoif one exists, otherwise it is NULL. 10823ba0142SJun-ichiro itojun Hagino.Pp 10923ba0142SJun-ichiro itojun HaginoThe 11023ba0142SJun-ichiro itojun Hagino.Li ifa_data 111*ac071896SSergey Kandaurovfield references address family specific data 112*ac071896SSergey Kandaurovin a pointer to the 11323ba0142SJun-ichiro itojun Hagino.Fa struct if_data 114c4d9468eSRuslan Ermilov(as defined in include file 115*ac071896SSergey Kandaurov.In net/if.h ) . 116*ac071896SSergey KandaurovFor 117*ac071896SSergey Kandaurov.Dv AF_LINK 118*ac071896SSergey Kandaurovaddresses, 119*ac071896SSergey Kandaurovit contains various interface attributes and statistics. 120*ac071896SSergey KandaurovFor all other address families, 121*ac071896SSergey Kandaurovit contains per-address interface statistics. 12223ba0142SJun-ichiro itojun Hagino.Pp 12323ba0142SJun-ichiro itojun HaginoThe data returned by 12423ba0142SJun-ichiro itojun Hagino.Fn getifaddrs 12523ba0142SJun-ichiro itojun Haginois dynamically allocated and should be freed using 12623ba0142SJun-ichiro itojun Hagino.Fn freeifaddrs 12723ba0142SJun-ichiro itojun Haginowhen no longer needed. 12823ba0142SJun-ichiro itojun Hagino.Sh RETURN VALUES 129d6002fefSRuslan Ermilov.Rv -std getifaddrs 13023ba0142SJun-ichiro itojun Hagino.Sh ERRORS 13123ba0142SJun-ichiro itojun HaginoThe 13223ba0142SJun-ichiro itojun Hagino.Fn getifaddrs 13323ba0142SJun-ichiro itojun Haginomay fail and set 13423ba0142SJun-ichiro itojun Hagino.Va errno 13523ba0142SJun-ichiro itojun Haginofor any of the errors specified for the library routines 13623ba0142SJun-ichiro itojun Hagino.Xr ioctl 2 , 13723ba0142SJun-ichiro itojun Hagino.Xr socket 2 , 13823ba0142SJun-ichiro itojun Hagino.Xr malloc 3 13923ba0142SJun-ichiro itojun Haginoor 14023ba0142SJun-ichiro itojun Hagino.Xr sysctl 3 . 14123ba0142SJun-ichiro itojun Hagino.Sh SEE ALSO 14223ba0142SJun-ichiro itojun Hagino.Xr ioctl 2 , 14323ba0142SJun-ichiro itojun Hagino.Xr socket 2 , 14423ba0142SJun-ichiro itojun Hagino.Xr sysctl 3 , 14523ba0142SJun-ichiro itojun Hagino.Xr networking 4 , 14623ba0142SJun-ichiro itojun Hagino.Xr ifconfig 8 14723ba0142SJun-ichiro itojun Hagino.Sh HISTORY 14823ba0142SJun-ichiro itojun HaginoThe 14923ba0142SJun-ichiro itojun Hagino.Nm 150ed2879a5SRuslan Ermilovimplementation first appeared in BSDi 151ed2879a5SRuslan Ermilov.Bsx . 15224a0682cSRuslan Ermilov.Sh BUGS 15324a0682cSRuslan ErmilovIf both 15424a0682cSRuslan Ermilov.In net/if.h 15524a0682cSRuslan Ermilovand 15624a0682cSRuslan Ermilov.In ifaddrs.h 15724a0682cSRuslan Ermilovare being included, 15824a0682cSRuslan Ermilov.In net/if.h 15924a0682cSRuslan Ermilov.Em must 16024a0682cSRuslan Ermilovbe included before 16124a0682cSRuslan Ermilov.In ifaddrs.h . 162