Help and Support
 

powered byLive Search

Applications Calling GetHostByName() for the Local Host Name May See the List of IP Addresses In an Order that Does Not Match the Binding Order.

Article ID:164023
Last Review:November 1, 2006
Revision:2.2
This article was previously published under Q164023

SYMPTOMS

When a Windows Sockets application calls gethostbyname() to resolve the local hostname to a list of IP addresses on a multihomed computer, the list may be returned in an order that does not match the binding order displayed in Control Panel, or the order that IP addresses were assigned to network interface cards (NICs).

Back to the top

CAUSE

Changes made to support Windows Sockets 2 produced this behavior.

Back to the top

RESOLUTION

To resolve this problem, obtain the latest service pack for Windows NT 4.0 or Windows NT Server 4.0, Terminal Server Edition. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
152734 (http://support.microsoft.com/kb/152734/EN-US/) How to Obtain the Latest Windows NT 4.0 Service Pack


When the new fix is applied, and gethostbyname() is used to resolve the local hostname on a multihomed computer, the list of IP addresses will be returned in the following order:
The first address from each NIC in the system. You can see the order in which they will appear by clicking the Bindings tab in the Control Panel Network tool.
The remainder of the IP addresses from each NIC. You can see the order in which they will appear by clicking the Bindings tab in the Control Panel Network tool.
Additional addresses, such as those dynmically assumed by a cluster server.
So if you had a computer similar to the following:
Card A - Addresses 1,2,3
Card B - Addresses 4,5,6
The order returned would be 1,4,2,3,5,6. That is, the first address from each NIC (1,4) and then the remainder from each NIC (2,3,5,6).

Back to the top

STATUS

Microsoft has confirmed that this is a problem in Windows NT 4.0 and Windows NT Server 4.0, Terminal Server Edition. This problem was first corrected in Windows NT 4.0 Service Pack 4.0 and Windows NT Server 4.0, Terminal Server Edition Service Pack 4.

Back to the top

MORE INFORMATION

For additional information about this issue, please see the following article in the Microsoft Knowledge Base:
ARTICLE-ID: 171320 (http://support.microsoft.com/kb/171320/EN-US/)
TITLE : How to Change the IP Address List Order Returned


To Change the order that addresses are returned:

1. Open Network Control Panel

2. Choose the bindings tab

3. Choose all protocols in the Show Bindings for drop down box

4. Expand the TCP/IP protocol

5. Addresses are tied to the specific Network Card. Move the NICs up or down the list to get the desired order.

Use ipconfig /all at the command line to assist in correctly identifying the NICs.

RAS interfaces will appear as NDISWANx . The addresses that RAS servers and RAS clients use are also returned in the list. This can have some adverse effects on applications that are not written to try other addresses when the first returned address fails.

Back to the top


APPLIES TO
Microsoft Windows NT Server 4.0, Terminal Server Edition
Microsoft Windows NT Workstation 4.0 Developer Edition
Microsoft Windows NT Server 4.0 Standard Edition

Back to the top

Keywords: 
kbhotfixserver kbqfe kbbug kbfix kbnetwork KB164023

Back to the top

Article Translations

 

Other Support Options

  • Need More Help?
    Contact a Support professional by E-mail, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.