我通常假设在
PHP脚本中,我可以测试$_SERVER [‘REMOTE_ADDR’]来建立请求发起的IP地址.但是,我开始怀疑事情是不是更复杂一些.这是场景
原文链接:https://www.f2er.com/php/131827.html>我运行了一些服务器,称为A,B和C – 用户必须在其上注册
>我运行一个单独的注册服务器,称之为S,其中用户凭据等首先被验证,然后向服务器A,B和C发送完整的注册请求. C
请求退出
file_get_contents('https://url?data=value')
在服务器A,B& C我非常天真地测试$_SERVER [‘REMOTE_ADDR’]来确定请求实际上来自服务器S.令我感到惊讶的是,结果证明是可变的
> REMOTE_ADDR中的值是与注册服务器S交互的人类用户的IP地址
> REMOTE_ADDR中的值是注册服务器的IP地址,S – 我一直以来一直看到的
> REMOTE_ADDR中的值是从主机服务器S的虚拟服务器上的IP地址池中的另一个IP地址
我真的不需要执行这个额外的验证测试,所以我可以完全删除它.不过,这个结果使我感到非常惊讶,所以我很好奇,看看有没有人可以看出发生了什么.
我应该提到,我在服务器A,B& A上的Lighttpd上运行PHP 5.5 C和PHP 5.3在Apache 2上在服务器S.