我已经编写了一个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调用并动态调用它。但是我还有其他方法吗?