首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在我公布的网站上获得客户的IP地址

无法在我公布的网站上获得客户的IP地址
EN

Stack Overflow用户
提问于 2017-09-09 08:58:24
回答 1查看 332关注 0票数 0

我已经实现了一个简单的API,它返回客户端"Request“的ip地址。当我在网络之外的时候,它总是返回相同的ip地址,当在网络内部时,它工作得非常好,并且它返回设备的本地ip地址。网站托管在IIS上,api逻辑如下:

代码语言:javascript
复制
public static class iphelper
    {
        private const string HttpContext = "MS_HttpContext";
        private const string RemoteEndpointMessage = "System.ServiceModel.Channels.RemoteEndpointMessageProperty";

        public static string GetClientIpAddress(this HttpRequestMessage request)
        {
            if (request.Properties.ContainsKey(HttpContext))
            {
                dynamic ctx = request.Properties[HttpContext];
                if (ctx != null)
                {
                    return ctx.Request.UserHostAddress;
                }
            }

            if (request.Properties.ContainsKey(RemoteEndpointMessage))
            {
                dynamic remoteEndpoint = request.Properties[RemoteEndpointMessage];
                if (remoteEndpoint != null)
                {
                    return remoteEndpoint.Address;
                }
            }

            return null;
        }
    }
}

我试过所有的片段都会返回相同的结果。我的项目使用ASP.NET MVC C#。

我尝试过HTTP_X_FORWARDED_FOR总是返回null

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-15 22:46:01

最有可能的是,它是与负载均衡器或网络设备前面,您的web服务器。

鉴于此:

REMOTE_ADDR重播192.168.130.140

我建议询问您的运营团队,在该IP上运行的是哪台机器,以及它如何通过调用IP地址(可能通过X-Forwarded-For)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46128925

复制
相关文章

相似问题

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