/******************************************************************************* D binding for the interface addresses querying Defines functions getifaddrs/freeifaddrs and the structure they operate on. getifaddrs(3) get interface addresses freeifaddrs(3) deallocates the structure returned from getifaddrs Copyright: Copyright (c) 2016 Sociomantic Labs. All rights reserved. License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0). Authors: Nemanja Boric *******************************************************************************/ module core.sys.linux.ifaddrs; import core.sys.posix.sys.socket; version (linux): extern (C): nothrow: @nogc: @system: struct ifaddrs { /// Next item in the list ifaddrs* ifa_next; /// Name of the interface char* ifa_name; /// Flags from SIOCGIFFLAGS uint ifa_flags; /// Address of interface sockaddr* ifa_addr; /// Netmask of interface sockaddr* ifa_netmask; union { /// Broadcast address of the interface sockaddr* ifu_broadaddr; /// Point-to-point destination addresss sockaddr* if_dstaddr; } /// Address specific data void* ifa_data; } /// Returns: linked list of ifaddrs structures describing interfaces int getifaddrs(ifaddrs** ); /// Frees the linked list returned by getifaddrs void freeifaddrs(ifaddrs* );