错误的客户端IP地址

时间:2013-01-16 13:42:32

标签: c# asp.net iis-7

我从ASP.NET获取客户端IP地址。但是一些客户端IP地址收到127.0.0.1。 什么是问题。如何获得有效的客户端IP地址?

我正在使用此代码:

    public static string GetIP()
{
    string clientIp = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    if (!string.IsNullOrEmpty(clientIp))
    {
        string[] forwardedIps = clientIp.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
        clientIp = forwardedIps[forwardedIps.Length - 1];
    }

    if (string.IsNullOrEmpty(clientIp))
        clientIp = HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"];
    if (string.IsNullOrEmpty(clientIp))
        clientIp = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

    return clientIp.ToString();
}

1 个答案:

答案 0 :(得分:1)

127.0.0.1是localhost,即同一台机器正在托管它。

我的猜测是你所看到的实际上是你自己的测试或调试?

我认为Request.IsLocal()是一种很好的查找方式。