1#pragma once 2 3#ifdef __cplusplus 4extern "C" { 5#endif 6 7#include <features.h> 8#include <netinet/in.h> 9#include <sys/socket.h> 10 11struct ifaddrs { 12 struct ifaddrs* ifa_next; 13 char* ifa_name; 14 unsigned ifa_flags; 15 struct sockaddr* ifa_addr; 16 struct sockaddr* ifa_netmask; 17 union { 18 struct sockaddr* ifu_broadaddr; 19 struct sockaddr* ifu_dstaddr; 20 } ifa_ifu; 21 void* ifa_data; 22}; 23#define ifa_broadaddr ifa_ifu.ifu_broadaddr 24#define ifa_dstaddr ifa_ifu.ifu_dstaddr 25 26void freeifaddrs(struct ifaddrs* ifp); 27int getifaddrs(struct ifaddrs** ifap); 28 29#ifdef __cplusplus 30} 31#endif 32