我已经编写了以下代码来获取我的机器的IPv4地址。当我们在服务器上部署此代码时,此代码为我提供服务器的IP地址,而不是运行应用程序的机器IP?
public string getIpAddress()
{
try
{
string myHost = System.Net.Dns.GetHostName();
string myIP = null;
for (int i = 0; i <= System.Net.Dns.GetHostEntry(myHost).AddressList.Length - 1; i++)
{
if (System.Net.Dns.GetHostEntry(myHost).AddressList[i].IsIPv6LinkLocal == false)
{
myIP = System.Net.Dns.GetHostEntry(myHost).AddressList[i].ToString();
}
}
return myIP;
}
catch (Exception)
{
throw;
}
}
答案 0 :(得分:2)
这是预期的行为,因为此代码在服务器端运行。
但是,如果要获取客户端IP地址,仍可以使用Request对象执行此操作。 (有关详细信息,请参阅此post或查看Google的示例)