首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取客户端外部IP或客户端LAN IP

获取客户端外部IP或客户端LAN IP
EN

Stack Overflow用户
提问于 2014-11-10 19:03:30
回答 2查看 763关注 0票数 0
代码语言:javascript
复制
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地址。我需要的是局域网的IP地址,而不是网络服务器的IP地址。

EN

回答 2

Stack Overflow用户

发布于 2014-11-10 20:12:16

使用HttpRequest.UserHostAddress

代码语言:javascript
复制
HttpContext.Current.Request.UserHostAddress;

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

票数 0
EN

Stack Overflow用户

发布于 2014-11-10 19:13:05

试试这个..。这对我很有效。

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

代码语言:javascript
复制
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;
    }
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26842297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档