我搜索了很多,但我找不到解决方案。我想:Ruby on Rails:如何获取客户端IP地址
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终端和负载均衡器,它可能看起来像“Get Remote Host Client IP Behind Load Balancers (ELB)”。
如何获取客户端IP地址?如果客户端在代理服务器后面,那很好,那么代理IP地址对我来说也是很好的。
我使用Apache和Passenger来为应用程序提供服务。
“request.remote_ip”是一个类似的问题。
你相比'request.remote_ip'到'request.ip'的结果吗? –
页面右侧的“相关”链接是你的朋友。这些技术和问题对于PHP,Net和Ruby来说都是一样的。代理,NAT等可以掩盖/隐藏用户真正在使用的IP。人们可以反弹其他盒子或使用[TOR](https://www.torproject.org/)类似的系统,因此准确地获得某些东西可能很困难。 –
@theTinMan,我在发布我的文章之前搜索了很多stackoverflow文章:-)查看我自己的答案。 –