$ _SERVER [' REMOTE_ADDR']让我只托管IP,而不是用户的IP。为什么?

时间:2014-12-15 05:36:23

标签: php

最近我需要在我的博客网站上更改我的计数器代码。这就是为什么一些攻击者使用程序或其他任何东西操纵我的文章的反数字。

他们可以在一天内将计数器增加到4000。所以我改变了计数器算法。现在我正在使用基于IP地址的计数器。但我对此有疑问。我知道$_SERVER['REMOTE_ADDR']为我们提供了用户正在查看当前页面的IP地址

我从http://php.net/manual/en/reserved.variables.server.php获取了这个解释。但是这个命令没有给我用户的IP地址。它总是给我hosting IP address。为什么呢?

请问有人解释这种情况吗?幸运的是,我从github找到了一个代码片段,我可以使用这个新的计数器。 (https://gist.github.com/cballou/2201933

为什么只有$_SERVER['REMOTE_ADDR']不起作用?

1 个答案:

答案 0 :(得分:1)

因为服务器上的其他一些软件正在启动请求。这可能是由例如反向代理或负载平衡器,或者它可能是被黑客入侵的结果。如果退回的请求是合法的,则同一阵列中的一个“HTTP_ *”元素应该为您提供真实地址,否则是时候备份所有数据,擦除服务器并重新开始。

相关问题