繁体   English   中英

如何获取客户端的本地IP地址,如192.168.0.1?

[英]How can I get a client's local IP address, like 192.168.0.1?

我已经尝试过Stack Overflow问题中的所有解决方案如何在ASP.NET中获取用户的客户端IP地址? 它为我提供服务器的IP地址,而不是客户端的LAN IP地址。

我需要获取客户端的本地IP地址,它必须被视为192.168.2.1,但我总是得到服务器的IP地址而不是它。

这是我的代码:

System.Web.HttpContext context = System.Web.HttpContext.Current;
string ipAddress = context.Request.ServerVariables["LOCAL_ADDR"];

有一个网站这样做, http://net.ipcalf.com/

我该如何解决这个问题?

您需要远程地址,而不是本地地址

context.Request.ServerVariables["REMOTE_ADDR"]

您的代码抓取服务器IP地址,而不是客户端。 请尝试以下方法:

此代码是从Stack Overflow问题中复制的, 如何在ASP.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"];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM