Compatible Name Resolution for TCP/IP in the Windows Sockets 1.1 API

Winsock 1.1 supports a set of functions that can be used for name resolution with TCP/IP (IP version 4) networks. These are customarily called the getXbyY functions. The following list shows these functions:

Ws2.dll provides the following two functions that are used to convert dotted Ipv4 Internet address notation to and from string and binary representations, respectively.

All of these functions are specific to Ipv4 TCP/IP networks. If you want to develop protocol-independent applications, you should not use these transport-specific functions. However, in order to retain strict backward compatibility with Winsock 1.1, all of the preceding functions will continue to be supported as long as at least one namespace provider is present that supports the AF_INET address family (these functions are not relevant to IP version 6, denoted by AF_INET6).

Ws2.dll translates most getXbyY functions to a sequence of calls to the WSALookupServiceBegin (Windows Sockets), WSALookupServiceNext (Windows Sockets), and WSALookupServiceEnd (Windows Sockets) functions by using one of a set of special GUIDs as the service class. These GUIDs identify the type of getXbyY operation that is being emulated. The query is constrained to those name space providers (NSPs) that support AF_INET.

The following table shows the service class GUIDS that are used to translate the gethostbyname and gethostbyaddr functions.

Function GUID Description
gethostbyname SVCID_INET_HOSTADDRBYNAME The host name that is specified in the lpszServiceInstanceName member of the WSAQUERYSET (Windows Sockets) structure.
gethostbyaddr SVCID_INET_HOSTNAMEBYADDR The host address as specified in the lpszServiceInstanceNamemember of WSAQUERYSETas a dotted Internet string.

To initiate a query, the NSP calls WSALookupServiceBegin by using the service class GUID. Ws2.dll specifies the LUP_RETURN_BLOB flag and the NSP places the hostent structure in the Binary Large Object (BLOB). The hostent structure must be modified slightly in that the pointers that are contained within it must be replaced with offsets that are relative to the start of the data for the BLOB The BLOB must contain all values that are referenced by these pointer parameters, and all strings must be ASCII.

In addition to the LUP_RETURN_BLOB flag, the NSP should also support the following LUP_RETURN_* flags.

Flag Description
LUP_RETURN_NAME Returns the h_name parameter from hostent structure in lpszServiceInstanceName.
LUP_RETURN_ADDR Returns addressing information from hostent in CSADDR_INFO structures, port information is defaulted to zero. Note that this routine does not resolve host names that consist of a dotted Internet address.

See Also

Winsock Name Resolution | Adding IPv6 Capability to an IPv4 Application

 Last updated on Saturday, April 10, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.