获取客户端外部 IP 或客户端局域网 IP

本文关键字:IP 客户端 局域网 外部 获取 | 更新日期: 2023-09-27 18:29:47

public static string GetClientExternalIp()
{
    HttpContext context = 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"];
}

我正在努力解决上面的代码片段,我想获取客户端外部 IP 地址,就像您在浏览到 http://checkip.dyndns.org 时看到的那样,但上面的代码片段返回服务器的 IP 地址。我需要的是客户端连接的 LAN 的 IP 地址,而不是 Web 服务器 IP。

获取客户端外部 IP 或客户端局域网 IP

use HttpRequest.UserHostAddress

HttpContext.Current.Request.UserHostAddress;

我使用上面的代码行,它返回客户端 IP 地址。

试试这个。这对我有用。

通过使用此方法,可以获取客户端 IP 地址,而不是服务器 IP。

public static string GetClientIP()
{
    try
    {
        string VisitorsIPAddress = string.Empty;
        if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
        {
            VisitorsIPAddr = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
        }
        else if (HttpContext.Current.Request.UserHostAddress.Length != 0)
        {
            VisitorsIPAddress = HttpContext.Current.Request.UserHostAddress;
        }
        return VisitorsIPAddress;
    }
    catch (Exception)
    {
        return null;
    }
}