如何在asp.net中获取正确的Web访问者公共IP地址

时间:2017-06-07 01:41:38

标签: c# asp.net .net networking dns

在访问.aspx页面时,我尝试了各种方法来获取我的IP地址。我通过AT& T蜂窝热点设备连接,我得到的IP地址不正确。如果我谷歌“我的IP地址是什么”谷歌得到它正确。我知道这是因为我试图通过我的防火墙访问某些东西,我需要我的IP地址而且它无法正常工作。我确认谷歌的确是正确的。但他们为什么不同?我浏览了网络上的各种资源,有些人得到了我在.NET中返回的内容,有些得到了谷歌正在展示的内容。这是我正在使用的代码,它没有返回正确的IP地址。

protected string GetIPAddress()
{
    System.Web.HttpContext context = System.Web.HttpContext.Current; 
    string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

    if (!string.IsNullOrEmpty(ipAddress))
    {
        string[] addresses = ipAddress.Split(',');
        if (addresses.Length != 0)
        {
            return addresses[0];
        }
    }

    return context.Request.ServerVariables["REMOTE_ADDR"];
}

我也尝试过简单的httpContext.Current.UserHostAddress,它也会返回错误的IP地址。

0 个答案:

没有答案