Wordpress缓存阻止PHP脚本返回正确的客户端IP - 我如何绕过我的缓存请求

时间:2015-04-16 08:09:37

标签: php wordpress caching

我已经编写了一个wordpress插件,它使用PHP来确定客户端ip。

我一直在使用以下功能:

function get_client_ip_server() {
     $ipaddress = '';
     if ($_SERVER['HTTP_CLIENT_IP'])
         $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
     else if($_SERVER['HTTP_X_FORWARDED_FOR'])
         $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
     else if($_SERVER['HTTP_X_FORWARDED'])
         $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
     else if($_SERVER['HTTP_FORWARDED_FOR'])
         $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
     else if($_SERVER['HTTP_FORWARDED'])
         $ipaddress = $_SERVER['HTTP_FORWARDED'];
     else if($_SERVER['REMOTE_ADDR'])
         $ipaddress = $_SERVER['REMOTE_ADDR'];
     else
         $ipaddress = 'UNKNOWN';

     return $ipaddress;
}

脚本运行得很好,但有时候当我启用WP Rocket作为Wordpress的缓存模块时,我遇到了问题。

重现起来有点困难,但在某个时刻,脚本开始一直提供相同的IP地址,而不是客户端ip。 重置wp缓存后,事情恢复正常。

我已经接触过wp火箭支援,但他们无法给我一个满意的答案。

我能做什么,所以结果不会被缓存?目前,该功能由插件脚本直接调用。

我可以考虑将其重写为api调用并动态调用它。但是我还有其他方法吗?

0 个答案:

没有答案