본문 바로가기
개발/php

해외 IP 접속 차단, 페이지별 접속 차단 php 후이즈 OPEN API

by 향유 2022. 5. 11.

해외 IP 접속을 차단 하는 방법은 3가지 방법이 있다.

 

1) 서버단에서 방화벽 접속을 차단하는 방법

- 이것이 가장 깔끔하고 쉬운 방법이다.

 

 

2) 브라우저 별 언어가 한국어 인지 체크하는 방법

$_SERVER['HTTP_ACCEPT_LANGUAGE']

//ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7 크롬
//ko,en;q=0.9,en-US;q=0.8 엣지

브라우저별로 리턴값이 다르다. 그러므로 결과값이 ko 를 포함하는지 체크하여 처리해준다.

 

 

3) 후이즈 open API를 활용(무료)

 - API를 활용 하는 경우는 유료 서비스가 아닌경우 많은 이용시 이용제한이 걸리기 때문에 모든 페이지에 기능을 부착하기보다는 특정 이용수가 적은 페이지에 이용하는 것이 안정적이다.

 - IP 확인 기능 제공사가 보유 하지 않은 DB의 데이터는 조회가 안되니 참고해야 한다.

 

 

후이즈 에서 제공하는 IP 확인 서비스가 있다.

https://xn--c79as89aj0e29b77z.xn--3e0b707e/kor/openkey/keyCre.do

 

KISA 후이즈검색 whois.kisa.or.kr

한국인터넷진흥원 인터넷주소자원 검색(후이즈검색) 서비스 입니다.

xn--c79as89aj0e29b77z.xn--3e0b707e

KEY를 발급받고 curl api 통신으로 결과값을 받아서 한국이 아닌경우 분기처리를 해준다.

 

    function kisa_ipcheck_api(){

        $ip = $_SERVER["REMOTE_ADDR"];

        $key = "===========KEY=========";

        $dataFormat = "json";

        $url ="http://whois.kisa.or.kr/openapi/ipascc.jsp?query=".$ip."&key=".$key."&answer=".$dataFormat."";

    

        $ch = curl_init();

        curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);

        curl_setopt($ch,CURLOPT_NOSIGNAL, 1);

        //curl_setopt($ch,CURLOPT_POST, 1); //Method를 POST로 지정.. 이 라인이 아예 없으면 GET

    

        $data = curl_exec($ch);

        $curl_errno = curl_errno($ch);

        $curl_error = curl_error($ch);

        curl_close($ch);

        $decodeJsonData = json_decode($data, true);

        return $decodeJsonData['whois']['countryCode'];

    }

상단 소스 참고 링크

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=zij08209712&logNo=221548792195

댓글