李明博客使用安全宝CDN加速后发现评论人的IP都是安全宝CDN的节点IP(也有可能是服务器IP),由于使用CDN后访问用户服务器的IP都变成CDN服务器的IP,查阅了很多资料终于找到了解决办法。
解决这个问题我们需要修改一下emlog内核的代码的,
用编辑器打开 include/lib/function.base.php, 在56行左右能找到以下的代码
/** * 获取用户ip地址 */ function getIp() { $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; if (!ip2long($ip)) { $ip = ''; } return $ip; }
将其修改为
/** * 获取用户ip地址 */ 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; }
相关阅读
留言咨询