我已经搜索了很多,但我找不到解决方案。我试过了:
Rails.logger.error request.remote_ip
Rails.logger.error request.env["REMOTE_ADDR"]
但结果有些奇怪:10.130.150.254
或10.130.150.251
.
我用我手机的LTE/4G网络测试,它总是给我10.130.247.251
,这是一个A类保留的私网IP地址。
我也试过:
Rails.logger.error request.env["HTTP_X_FORWARDED_FOR"]
Rails.logger.error request.env["HTTP_X_REAL_IP"]
Rails.logger.error request.env["HTTP_X_CLUSTER_CLIENT_IP"]
但是那些给了我空字符串。
当我使用我的手机并指向 touch.whatsmyip.org 时,它给了我:172.56.9.89
,这是一个公共 IP 地址。
我们使用 HTTPS SSL 终止和负载均衡器,它可能看起来像“在负载均衡器 (ELB) 后面获取远程主机客户端 IP ”。
如何获取客户端 IP 地址?如果客户端在代理后面,那很好,那么代理 IP 地址对我也有好处。
我正在使用 Apache 和Passenger 为应用程序提供服务。
“ request.remote_ip ”是一个类似的问题。