【发布时间】:2010-11-05 00:15:28
【问题描述】:
如何动态获取服务器(要连接的PC)的IP地址?
【问题讨论】:
-
例如,Ping.Send 需要一个 IPAddress,因此对于“服务器处于活动状态”的验证代码需要翻译。
标签: c# ip-address resolve
如何动态获取服务器(要连接的PC)的IP地址?
【问题讨论】:
标签: c# ip-address resolve
如果您使用以下方法,您将能够正确解决
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。
【讨论】:
IPHostEntry Host = Dns.GetHostEntry(DNSNameString);
DoSomethingWith(Host.AddressList);
【讨论】:
【讨论】:
System.Dns.GetHostEntry 可用于将名称解析为 IP 地址。
【讨论】: