获取客户端IP地址的方法
我正在开发一个应用程序,人们似乎很可能会试图隐藏其代理服务器后面的客户端IP地址。获取客户端IP地址的方法
是否有一个统一的方式来获得实际的客户端IP地址是在代理后面?纵观Ruby docs,它明确指出,
request.remote_ip
和
request.remote_addr
都将返回代理地址,而不是实际的客户端IP,我通过在“可能含有”的描述抛出其余的HTTP头文件。
我从代理服务器后面的机器上输入。我不是“隐藏”的,这就是我的组织(以及大多数其他人能够拥有服务器)的工作原理。我没有固定的IP地址:它是动态分配的。所以我看不出知道我的“当前”IP地址会如何帮助,因为它明天会有所不同。哎呀,我明天可能会通过另一个代理连接(我为一个大型组织工作)!
在家里,我有几台机器通过路由器连接。同样,我没有固定的IP地址:它由我的ISP动态分配。这是一个庞大的ISP,因此可能在上游有一个代理服务器。
所以我认为你想要的不是技术上可行的。无论如何,什么样的应用程序会使它“很可能会试图隐藏他们的客户端IP地址?你想解决什么问题?
我正在创建一个在线投票应用程序,并希望采取合理措施来防止投票填充 - 结帐http://musicmachinery.com/2009/04/15/inside-the-precision-hack/用于最糟糕的情况。 我应该在我的原始问题中指定“匿名代理”,因为您列出的示例(企业或本地NAT)是正确的,但从我的角度来看是可管理的。 – 2009-08-21 14:08:46
几年后,在这里,但即使IP时常变化,它对于高层次的地理信息也很有用。我的ISP可能会不时给我一个不同的知识产权,但他们看起来都是一样的。例如,显然我在美国的某个地方。这对于很多应用程序来说足够好。 – juanpaco 2012-05-16 13:43:08
如果remote_ip正在检查“最远的”HTTP_X_FORWARDED_FOR,那么我不必担心尝试自行排序。谢谢。 – 2009-08-21 06:11:03