获取服务器的IPv4地址,而不是机器

时间:2014-04-01 11:07:07

标签: c# asp.net ip-address

我已经编写了以下代码来获取我的机器的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;
    }
}

1 个答案:

答案 0 :(得分:2)

这是预期的行为,因为此代码在服务器端运行。

但是,如果要获取客户端IP地址,仍可以使用Request对象执行此操作。 (有关详细信息,请参阅此post或查看Google的示例)