Emlog에서 CDN 활성화 후 실제 IP를 가져오지 못하는 문제 해결

3,896 0

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

해결 단계

편집기로 include/lib/function.base.php를 열면 60번째 줄쯤에서 다음 코드를 찾을 수 있습니다.

PHP
function getIp() {
    $ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
        if (!ip2long($ip)) {
            $ip = '';
        }
        return $ip;
}

다음 코드로 수정합니다.

PHP
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 버전에서만 테스트되었으며, 다른 버전은 직접 테스트해 보시기 바랍니다(이론적으로는 가능합니다).

댓글

(0)

아직 댓글이 없습니다

댓글 작성