获取客户端IP地址的方法

时间:2009-08-21 05:46:08

标签: ruby-on-rails ruby proxy ip-address

我正在开发一个应用程序,人们可能会尝试隐藏代理服务器后面的客户端IP地址。

是否有统一的方法来获取代理背后的实际客户端IP地址?查看Ruby docs,它明确指出

request.remote_ip

request.remote_addr

两者都将返回代理地址而不是实际的客户端IP,并且我被其余HTTP头中的“可能包含”描述抛出。

2 个答案:

答案 0 :(得分:2)

这取决于代理是否支持X-Forwarded-For。我会运行一些测试,以确保remote_ip不是您正在寻找的 - 基于快速浏览一下它尝试读取HTTP_X_FORWARDED_FOR标题的代码。

答案 1 :(得分:1)

我是从代理后面的机器输入的。我不是“隐藏”,这是我的组织(以及大多数其他大到足以拥有服务器)的工作方式。我没有固定的IP地址:它是动态分配的。所以我不知道如何知道我的“当前”IP地址会有所帮助,因为明天会有所不同。哎呀,明天我可能会通过不同的代理连接(我为大型组织工作)!

在家里,我有几台机器通过路由器连接。同样,我没有固定的IP地址:它是由我的ISP动态分配的。它是一个大型ISP,因此上游某处可能存在代理服务器。

所以我认为你想要的并不是技术上可行的。什么样的应用程序会“很可能人们会试图隐藏他们的客户端IP地址”呢?你想解决什么问题?