테스트 사이트 - 개발 중인 베타 버전입니다

특정 아이피만 관리자 페이지 접속 시 다중접속 문의드립니다. 채택완료

늙은호랑이 2년 전 조회 1,512

1. 단일 아이피

$possible_ip = 'xxx.xxx.xxx.xxx'; // 아이피 입력
if ($_SERVER['REMOTE_ADDR'] != $possible_ip) {
    alert('접근 권한이 없습니다.', G5_URL);
}
2. 다중 아이피 (콤마로 구분해서 추가)

$possible_ip = array("xxx.xxx.xxx.xxx", "xxx.xxx.xxx.xxx");
if (!in_array($_SERVER['REMOTE_ADDR'], $possible_ip)){
   alert('접근 권한이 없습니다.', G5_URL);
}
3. 아이피 대역대로 지정 (마지막 아이피 3자리가 계속 바뀔 경우)
예를 들어 아이피가 123.456.789.000 이면 마지막 000을 제외한 123.456.789만 입력

if(!preg_match("/^xxx.xxx.xxx/",$_SERVER['REMOTE_ADDR'])) {
   alert('접근 권한이 없습니다.', G5_URL);
}

 

위와 같이 특정 아이피 접속 허용하는 방법이 있는데 위 방법중 단일아이피가 접속되면서 아이피 대역대로 지정되도록 하고 싶은데 방법이 있는지 문의드립니다.

ex) 123.234.345.678 아이피 접속 허용하면서 987.555.555 아이피 대역대도 접속이 되게 하려면?

 

방법이 있는지 문의드립니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
그누위즈

/extend/user.config.php

</p>

<p>// 관리자 ip 접근 추가 시작

$admin_ip = array(

    '123.234.345.678', // 단일 아이피</p>

<p>    '987.555.555.*' // 대역폭

);</p>

<p>add_event('admin_common', 'get_admin_ip');

// 관리자 ip 접근 추가 끝</p>

<p> </p>

<p>// 특정 IP에서만 사용이 가능하도록 조건식을 추가하기 위함 (gnuwiz)

function get_admin_ip()

{

    global $admin_ip;</p>

<p>    $client_ip = $_SERVER['REMOTE_ADDR'];</p>

<p>    foreach ($admin_ip as $ip) {

        // IP에 와일드카드 '*'가 포함되어 있는지 확인합니다

        if (strpos($ip, '*') !== false) {

            $pattern = str_replace('*', '\d{1,3}', $ip);

            if (preg_match('/^'.$pattern.'$/', $client_ip)) {

                return; // IP 일치, 액세스 허용

            }

        } elseif ($ip === $client_ip) {

            return; // IP가 정확하게 일치함, 액세스 허용됨

        }

    }</p>

<p>    session_unset(); // 모든 세션변수를 언레지스터 시켜줌

    session_destroy(); // 세션해제함</p>

<p>    alert('접근 권한이 없습니다.', G5_URL);

}</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

2년 전

이렇게 해보는건 어떨까요?

 

$possible_ip = '123.234.345.678'; // 단일 아이피 입력

$possible_ip_range = '987.555.555'; // 아이피 대역대 입력 (처음 세자리) '987.555.555.xxx' 아이피 대역대의 접근이 허용

 

$ip_parts = explode('.', $_SERVER['REMOTE_ADDR']); // 접속 아이피를 '.'으로 구분하여 배열로 저장


 

// '123.234.345.678' 아이피와 '987.555.555.xxx' 아이피 대역대의 접근이 허용

if ($_SERVER['REMOTE_ADDR'] != $possible_ip && implode('.', array_slice($ip_parts, 0, 3)) != $possible_ip_range) {

alert('접근 권한이 없습니다.', G5_URL);

}

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인