首页 > 解决方案 > 如何通过平衡器获取客户端IP地址

问题描述

有这样的情况:我有服务器 my.qwe (192.168.0.1),它指向平衡器 192.168.0.2,它将客户端抛出 192.168.0.3 或 192.168.0.4。我从机器 192.168.0.5 发出请求。问题:如何获取我机器的IP地址。注:我用过

HttpContext.Current.Request.ServerVariables["HTTP_X_COMING_FROM"]
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED"]
HttpContext.Current.Request.ServerVariables["HTTP_VIA"]
HttpContext.Current.Request.ServerVariables["HTTP_COMING_FROM"]
HttpContext.Current.Request.ServerVariables["HTTP_FORWARDED_FOR"]
HttpContext.Current.Request.ServerVariables["HTTP_FORWARDED"]
HttpContext.Current.Request.ServerVariables["HTTP_FROM"]
HttpContext.Current.Request.ServerVariables["HTTP_PROXY_CONNECTION"]
HttpContext.Current.Request.ServerVariables["CLIENT_IP"]
HttpContext.Current.Request.ServerVariables["REMOTE_HOST"]
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]
HttpContext.Current.Request.ServerVariables["FORWARDED"]

给出空字符串或平衡器的IP地址192.168.0.2,我该怎么办???

标签: asp.netasp.net-mvcasp.net-mvc-4asp.net-mvc-3

解决方案


您可以使用:

Request.UserHostAddress

或者:

HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]

两者都应该工作。您可以在此处找到更多信息:

Request.UserHostAddress 和 Request.ServerVariables["REMOTE_ADDR"].ToString() 有什么区别


推荐阅读