Dee
Dee

Reputation:

In C#, how do I resolve the IP address of a host?

How can you dynamically get the IP address of the server (PC which you want to connect to)?

Upvotes: 15

Views: 9775

Answers (5)

Tyronne Thomas
Tyronne Thomas

Reputation: 41

If you Use the Below Method you will be able to resolve correctly

 public static bool GetResolvedConnecionIPAddress(string serverNameOrURL, out IPAddress resolvedIPAddress)
        {
            bool isResolved = false;
            IPHostEntry hostEntry = null;
            IPAddress resolvIP = null;
            try
            {
                if (!IPAddress.TryParse(serverNameOrURL, out resolvIP))
                {
                    hostEntry = Dns.GetHostEntry(serverNameOrURL);

                    if (hostEntry != null && hostEntry.AddressList != null && hostEntry.AddressList.Length > 0)
                    {
                        if (hostEntry.AddressList.Length == 1)
                        {
                            resolvIP = hostEntry.AddressList[0];
                            isResolved = true;
                        }
                        else
                        {
                            foreach (IPAddress var in hostEntry.AddressList)
                            {
                                if (var.AddressFamily == AddressFamily.InterNetwork)
                                {
                                    resolvIP = var;
                                    isResolved = true;
                                    break;
                                }
                            }
                        }
                    }
                }
                else
                {
                    isResolved = true;
                }
            }
            catch (Exception ex)
            {

            }
            finally
            {
                resolvedIPAddress = resolvIP;
            }

            return isResolved;
        }

Upvotes: 2

Richard Anthony Hein
Richard Anthony Hein

Reputation: 10650

Based on your comment on chaos's answer, you don't want the IP address of a server, you want the IP address of a client. If that's the case, fix your question ... and your answer would be HttpRequest.UserHostAddress.

Upvotes: 0

chaos
chaos

Reputation: 124257

IPHostEntry Host = Dns.GetHostEntry(DNSNameString);
DoSomethingWith(Host.AddressList);

Upvotes: 10

Chris Harris
Chris Harris

Reputation: 4735

You want to do an nslookup.

Here's an example:

http://www.c-sharpcorner.com/UploadFile/DougBell/NSLookUpDB00112052005013753AM/NSLookUpDB001.aspx

Upvotes: 0

Michael
Michael

Reputation: 55385

System.Dns.GetHostEntry can be used to resolve a name to an IP address.

Upvotes: 17

Related Questions