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

한국 IP가 아니면 차단 하는 extend (국내 모든 IP 내장)

그누보드 extend 폴더에 넣어두면 국내IP만 접속가능하게 됩니다.  2025년 5월 국내 IP  기준

국내IP 추출하는 방법은 링크 참고

https://cmdkr.tistory.com/entry/전체국가-IP-리스트중-한국-IP만-문자열로-저장하는-소스-대략-2200개-정도됨

 

<?php
/*
특정 IP가 국내 IP 인지 확인하는 함수
작성 : 2025-05-15 김성대
한국인터넷정보센터.한국/jsp/statboard/IPAS/ovrse/natal/IPaddrBandCurrent.jsp?nationCode1=KR
에서 2025년5월 현재 전체국가 IP 리스트 중 한국만 뽑아서 문자열로 저장 (대략 2200개 정도됨)
192.* 172.* 공유기 IP도 포함

테스트
$ip = "104.8.230.50";
$ip=$_SERVER['REMOTE_ADDR'];
$ret=is_ip_in_kr($ip);
echo "한국 IP 확인 결과 $ip : $ret<BR>";
*/
if (!is_ip_in_kr($_SERVER['REMOTE_ADDR'])) {
    die("This service is currently limited to users in Korea. (한국에서만 접속 가능합니다.)");
}


/**
 * 특정 IP가 지정된 서브넷 범위 내에 있는지 확인하는 함수
 *
 * @param string $ip 검사할 IP 주소
 * @param string $subnet 서브넷의 시작 IP 주소
 * @param int $cidr 서브넷 마스크 (CIDR 값)
 * @return bool 해당 IP가 서브넷 범위 내에 있으면 true, 아니면 false
 */
function is_ip_in_subnet($ip, $subnet, $cidr) {
    // 시작 IP 주소를 정수로 변환
    $firstIp = ip2long($subnet);
    //echo "$ip,$subnet,$cidr,<BR>";

    // 서브넷 마스크를 기반으로 마지막 IP 주소 계산
    $lastIp = $firstIp + (1 << (32 - $cidr)) - 1;

    // 입력받은 IP 주소를 정수로 변환 후 범위 비교
    $ipLong = ip2long($ip);
    return $ipLong >= $firstIp && $ipLong <= $lastIp;
}

//2025-05-15 현재 국내 IP 현황
// 127. ... 172... 는 공유기 내부 ip
function is_ip_in_kr($ip) {
    $arr_ip=explode("\n","
127.0.0/16
172.30.1/16
14.128.128/17
14.129.0/16
45.112.88/21
.... (소스에는 전체 데이터 있음)

160.187.186/23
163.223.94/23
");

    foreach($arr_ip as $buff) {
        $arr=explode("/",trim($buff));
        if ($arr[0] && is_ip_in_subnet($ip, $arr[0].'.0', $arr[1])) {
            return true;
        }
    }
    return false;
}

댓글 작성

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

로그인하기

댓글 10개

감사합니다 ^^

선생님 이 파일 하나만 저 폴더에 넣으면 알아서 적용되는거에요 ? 그럼 한국인만 사이트에 접속되는거지요 ?

 

@ploki0911 네 그렇습니다. 한국으로 등록된 IP만 가능합니다.

그외 지역 IP은 한국인터넷정보센터 에서 받아서 파일에 추가하시면 그 지역도 허용 됩니다.

감사합니다..잘 사용하겠습니다.

 

그리고 구글애드센스나 구글애널리틱스 등

구글 제품 해외 ip는 제외하는 옵션이 있었으면 좋겠습니다

@아론다론 구글 봇 IP 리스트를 파일에 추가하시면 됩니다.

감사합니다. 역으로 특정지역 아이피만 차단하려면 어떻게 해야 할까요?

적용했습니다 

아주 쉽게  적용 가능하고

쉽게 ip 추가 가능하니 넘 좋습니다

감사합니다. 잘 사용하겠습니다.

수고해 주시어 또 하나를 배워 봅니다....

게시판 목록

그누보드5 팁자료실

글쓰기
🐛 버그신고