如何通过平衡器获取客户端IP地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过平衡器获取客户端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"]

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

答案

你可以使用:

Request.UserHostAddress

要么:

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

两者都应该有效。你可以在这里找到更多相关信息:

What is the difference between Request.UserHostAddress and Request.ServerVariables["REMOTE_ADDR"].ToString()

以上是关于如何通过平衡器获取客户端IP地址的主要内容,如果未能解决你的问题,请参考以下文章

如何获取客户端/用户 IP 地址? [复制]

如何使用 express 框架通过 node.js 获取远程客户端的本地 IP 地址?

在负载平衡情况下使用 WCF 4.5 RemoteEndpointMessageProperty 获取客户端 IP 地址

关于JS获取IP的写法!

如何获取web客户端IP地址

如何在 AWS 上获取 kubernetes 负载均衡器服务的永久 IP 地址?