网站接入CDN后,在Emlog获取用户的IP后会导致不准确,甚至网站日志上获取的IP就不是真实的IP,是CDN服务器的IP,这就会引发一些问题。对此本文就针对Emlog站点开启了CDN后评论IP不准确的解决方法。
修改步骤
此步骤需要修改核心文件,修改前请做好备份,找到include/lib/function.base.php,Emlogpro在38行开始
将以下进行代码替换。
/**
* 获取用户ip地址
*/
if (!function_exists('getIp')) {
function getIp() {
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
if (!filter_var($ip, FILTER_VALIDATE_IP)) {
$ip = '';
}
return $ip;
}
}
替换为:
/**
* 获取用户ip地址
*/
if (!function_exists('getIp')) {
function getIp() {
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = $list[0];
}
if (!ip2long($ip)) {
$ip = '';
}
return $ip;
}
}
修改保存以后就可以正常获取IP了,此方法对CDN加速的厂商没用限制,不管是百度云加速七牛等CDN加速的一样适用。
刀云免责声明
1、帖子原作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任。
2、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
3、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。
签名:这个人很懒,什么也没有留下!