13 #ifndef getWindowsDNSServers_h_ 14 #define getWindowsDNSServers_h_ 28 #define MAX_ADAPTER_DESCRIPTION_LENGTH 128 // arb. 29 #define MAX_ADAPTER_NAME_LENGTH 256 // arb. 30 #define MAX_ADAPTER_ADDRESS_LENGTH 8 // arb. 31 #define DEFAULT_MINIMUM_ENTITIES 32 // arb. 32 #define MAX_HOSTNAME_LEN 128 // arb. 33 #define MAX_DOMAIN_NAME_LEN 128 // arb. 34 #define MAX_SCOPE_ID_LEN 256 // arb. 35 #define MAX_ADAPTER_NAME 128 43 #define BROADCAST_NODETYPE 1 44 #define PEER_TO_PEER_NODETYPE 2 45 #define MIXED_NODETYPE 4 46 #define HYBRID_NODETYPE 8 50 #define IF_OTHER_ADAPTERTYPE 0 51 #define IF_ETHERNET_ADAPTERTYPE 1 52 #define IF_TOKEN_RING_ADAPTERTYPE 2 53 #define IF_FDDI_ADAPTERTYPE 3 54 #define IF_PPP_ADAPTERTYPE 4 55 #define IF_LOOPBACK_ADAPTERTYPE 5 56 #define IF_SLIP_ADAPTERTYPE 6 64 IfOperStatusNotPresent,
65 IfOperStatusLowerLayerDown
76 } IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
83 typedef struct _IP_ADDR_STRING {
84 struct _IP_ADDR_STRING* Next;
85 IP_ADDRESS_STRING IpAddress;
86 IP_MASK_STRING IpMask;
88 } IP_ADDR_STRING, *PIP_ADDR_STRING;
95 typedef struct _IP_ADAPTER_INFO {
96 struct _IP_ADAPTER_INFO* Next;
99 char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
101 BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
105 PIP_ADDR_STRING CurrentIpAddress;
106 IP_ADDR_STRING IpAddressList;
107 IP_ADDR_STRING GatewayList;
108 IP_ADDR_STRING DhcpServer;
110 IP_ADDR_STRING PrimaryWinsServer;
111 IP_ADDR_STRING SecondaryWinsServer;
112 time_t LeaseObtained;
114 } IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
120 typedef struct _IP_PER_ADAPTER_INFO {
121 UINT AutoconfigEnabled;
122 UINT AutoconfigActive;
123 PIP_ADDR_STRING CurrentDnsServer;
124 IP_ADDR_STRING DnsServerList;
125 } IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO;
133 IpPrefixOriginOther = 0,
134 IpPrefixOriginManual,
135 IpPrefixOriginWellKnown,
137 IpPrefixOriginRouterAdvertisement
141 IpSuffixOriginOther = 0,
142 IpSuffixOriginManual,
143 IpSuffixOriginWellKnown,
145 IpSuffixOriginLinkLayerAddress,
150 IpDadStateInvalid = 0,
153 IpDadStateDeprecated,
157 typedef struct SOCKET_ADDRESS_XYZ {
158 LPSOCKADDR lpSockaddr ;
159 INT iSockaddrLength ;
160 } SOCKET_ADDRESS_XYZ, *PSOCKET_ADDRESS_XYZ, FAR * LPSOCKET_ADDRESS_XYZ ;
162 typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
170 struct _IP_ADAPTER_UNICAST_ADDRESS *Next;
171 SOCKET_ADDRESS_XYZ Address;
172 IP_PREFIX_ORIGIN PrefixOrigin;
173 IP_SUFFIX_ORIGIN SuffixOrigin;
174 IP_DAD_STATE DadState;
177 ULONG PreferredLifetime;
179 } IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS;
181 typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
189 struct _IP_ADAPTER_ANYCAST_ADDRESS *Next;
190 SOCKET_ADDRESS_XYZ Address;
191 } IP_ADAPTER_ANYCAST_ADDRESS, *PIP_ADAPTER_ANYCAST_ADDRESS;
193 typedef struct _IP_ADAPTER_MULTICAST_ADDRESS {
201 struct _IP_ADAPTER_MULTICAST_ADDRESS *Next;
202 SOCKET_ADDRESS_XYZ Address;
203 } IP_ADAPTER_MULTICAST_ADDRESS, *PIP_ADAPTER_MULTICAST_ADDRESS;
206 char HostName[MAX_HOSTNAME_LEN + 4] ;
207 char DomainName[MAX_DOMAIN_NAME_LEN + 4];
208 PIP_ADDR_STRING CurrentDnsServer;
209 IP_ADDR_STRING DnsServerList;
211 char ScopeId[MAX_SCOPE_ID_LEN + 4];
215 } FIXED_INFO, *PFIXED_INFO;
217 typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS {
225 struct _IP_ADAPTER_DNS_SERVER_ADDRESS *Next;
226 SOCKET_ADDRESS_XYZ Address;
227 } IP_ADAPTER_DNS_SERVER_ADDRESS, *PIP_ADAPTER_DNS_SERVER_ADDRESS;
229 typedef struct _IP_ADAPTER_PREFIX {
237 struct _IP_ADAPTER_PREFIX *Next;
238 SOCKET_ADDRESS_XYZ Address;
240 } IP_ADAPTER_PREFIX, *PIP_ADAPTER_PREFIX;
242 typedef struct _IP_ADAPTER_ADDRESSES {
250 struct _IP_ADAPTER_ADDRESSES *Next;
252 PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress;
253 PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress;
254 PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress;
255 PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress;
259 BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
260 DWORD PhysicalAddressLength;
264 IF_OPER_STATUS OperStatus;
266 DWORD ZoneIndices[16];
267 PIP_ADAPTER_PREFIX FirstPrefix;
268 } IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;
270 typedef struct _IP_ADAPTER_INDEX_MAP {
272 WCHAR Name[MAX_ADAPTER_NAME];
273 } IP_ADAPTER_INDEX_MAP, *PIP_ADAPTER_INDEX_MAP;
275 typedef struct _IP_INTERFACE_INFO {
277 IP_ADAPTER_INDEX_MAP Adapter[1];
278 } IP_INTERFACE_INFO,*PIP_INTERFACE_INFO;
281 extern "C" int getWindowsDNSServers(
char DNSServers[][MAXIPLEN],
int max,
const char* szLocalIp);
294 int getWindowsDNSServers(
char DNSServers[][MAXIPLEN],
int max,
const char* szLocalIp);
300 #endif // getWindowsDNSServers_h_
bool getContactAdapterName(UtlString &adapterName, const UtlString &ipAddress, bool unusedHere)
Definition: AdapterInfo.cpp:137
bool getAllLocalHostIps(const HostAdapterAddress *localHostAddresses[], int &numAddresses)
Definition: AdapterInfo.cpp:37
Definition: UtlString.h:48
#define MAX_ADAPTER_NAME_LENGTH
Definition: OsSocket.h:33
Definition: HostAdapterAddress.h:30