19 #ifdef DtUSE_UTILITIES_NAMESPACE
20 namespace DtUSE_UTILITIES_NAMESPACE
27 #define DtInet_MAX_PHYSADDR_LEN MAX_ADAPTER_ADDRESS_LENGTH
28 #define DtMAX_DEVICE_NAME_LEN 128 // Windows is ???? so be safe
29 #define DtInet_INITIAL_IFCONF_BUFF_SIZE sizeof(IP_ADAPTER_ADDRESSES)
31 #define DtInet_IFSTATE_UP IfOperStatusUp
32 #define DtInet_IFSTATE_DOWN IfOperStatusDown
33 #define DtInet_IFSTATE_ACTIVE IfOperStatusUp
34 #define DtInet_IFSTATE_UNKNOWN IfOperStatusUnknown
39 #define DtInet_MAX_PHYSADDR_LEN 8
40 #define DtMAX_DEVICE_NAME_LEN IFNAMSIZ // typically 16
41 #define DtInet_INITIAL_IFCONF_BUFF_SIZE sizeof(struct ifreq)
43 #define DtInet_INITIAL_LIFCONF_BUFF_SIZE sizeof(struct lifreq)
46 #define DtInet_IFSTATE_UP IFF_UP
47 #define DtInet_IFSTATE_DOWN 0
48 #define DtInet_IFSTATE_ACTIVE IFF_RUNNING
49 #define DtInet_IFSTATE_UNKNOWN 0
66 struct sockaddr_in6 ifinfo_addr;
67 struct sockaddr_in6 ifinfo_dstaddr;
68 struct sockaddr_in6 ifinfo_broadaddr;
84 #define ifr6_info_in6 ifr6_ifru_in6.ifru_info_in6
85 #define ifr6_data ifr6_ifru_in6.ifru_data
141 virtual const DtString& deviceName()
const;
149 virtual const DtInetAddr* broadcastAddr()
const;
157 virtual const DtInetAddr* ipv4Netmask()
const;
163 virtual const DtInetAddr* ipv4BroadcastAddr()
const;
170 virtual const DtInetAddr* ipv6BroadcastAddr()
const;
179 virtual const DtString& macAddrString()
const;
185 virtual unsigned int mtu()
const;
188 virtual unsigned int linkState()
const;
196 virtual bool isUp()
const;
197 virtual bool isActive()
const;
198 virtual bool isBroadcastCapable()
const;
199 virtual bool isMulticastCapable()
const;
200 virtual bool hasIpv4Addr()
const;
201 virtual bool hasIpv6Addr()
const;
206 virtual unsigned int interfaceIndex()
const;
210 virtual bool isOk()
const;
213 virtual const DtString& getLastErrorString()
const;
220 void scanDeviceByName(
const DtString& deviceName );
221 void initMACAddrString();
224 void init( PIP_ADAPTER_ADDRESSES devInfo );
227 void init(
int sockFd,
struct lifreq* devInfo,
230 void init(
int sockFd,
struct ifreq* devInfo,
279 #ifdef DtUSE_UTILITIES_NAMESPACE