s

PHP에서 접속아이피 추출하기

· 2023-05-24 (수) 16:38:14 · 2181 · 3
2023-05-24_16-37-02.jpg

안녕하세요.

그누보드 Q&A에 PHP에서 접속아이피를 검출하는 방법에 대해 논의가 있었기에 설명해드리는것이 좋겠다고 생각되어 샘플함수를 아래에 적었습니다.

 

function getClientIp()
{
    $ip = $_SERVER['REMOTE_ADDR'];
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
        foreach ($matches[0] AS $xip) {
            if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
                $ip = $xip;
                break;
            }
        }
    } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CF_CONNECTING_IP'])) {
        $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
    } elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_IP'])) {
        $ip = $_SERVER['HTTP_X_REAL_IP'];
    }
    if ($ip == '::1') $ip = 'localhost';
    return $ip;
}

버전 정보

테스트한 버전 5.5.8.3
호환 가능 버전 5.3

첨부파일

2023-05-24_16-37-02.jpg (207.5 KB)
0회 2023-05-24 16:38 포인트 차감 1
PhpClient.php (3.1 KB) 8회 2023-05-24 16:38 포인트 차감 1
|

댓글 3개

감사 합니다.
감사합니다. 함수를 자체적으로 만드는 사람보면 부럽습니다^^
안녕하세요.
소스 공개 감사합니다.
스킨에서 어떻게 활용하는지도 알려주시면 초보자들에게 많은 도움이 됩니다.
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 스킨

2,752건

좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.

+