며칠 전에 「WP에서 CDN을 활성화한 후 실제 IP를 가져올 수 없는 문제 해결」에 관한 글을 작성했는데, 오늘 우연히 한 사람이 그룹에서 도움을 요청하는 것을 보았습니다. 그는 Emlog 프로그램을 사용하고 있었고, 역시 같은 문제(CDN을 활성화한 후 실제 IP를 가져올 수 없음)를 겪고 있었습니다. 그래서 WordPress의 해결 방법을 Emlog에도 적용해 보기로 했는데, 결과적으로 정말 가능했습니다. 아래에서 그 과정을 공유하니 참고하시기 바랍니다. 어쩌면 다른 프로그램에서도 문제를 해결할 수 있을지도 모릅니다.

해결 단계
편집기로 include/lib/function.base.php를 열면 60번째 줄 부근에서 다음 코드를 찾을 수 있습니다.
function getIp() {
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
if (!ip2long($ip)) {
$ip = '';
}
return $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;
}
주의
위 코드는 Emlog 5.3.1 버전에서만 테스트되었으며, 다른 버전에서는 직접 테스트하시기 바랍니다(이론적으로는 가능합니다).