在C#中,如何解析主机的IP地址?

如何动态获取服务器的IP地址(要连接的PC)?

System.Dns.GetHostEntry可用于将名称解析为IP地址。

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

如果您使用下面的方法,您将能够正确解决

  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; } 

根据你对混沌答案的评论,你不需要服务器的IP地址,你想要客户端的IP地址。 如果是这种情况,请修正您的问题……您的答案将是HttpRequest.UserHostAddress。