[개발] WHOIS API 통한 IP 국가 조회 > 그누보드5 팁자료실

그누보드5 팁자료실

[개발] WHOIS API 통한 IP 국가 조회 정보

[개발] WHOIS API 통한 IP 국가 조회

본문

서비스를 운영하거나, 고객의 요구에 의해 현재 접속한 IP 혹은 특정 IP가 소속된 국가(KR)를 판단할 필요가 있습니다. 인터넷에는 이러한 국가별 IP를 기록한 파일들이 있지만, 완전한 데이터베이스(DB)를 민간사업자가 구축하기에는 현실적인 어려움이 있습니다.

 

이에 한국인터넷진흥원에서 운영하는 'WHOIS OPEN API'를 소개합니다. 이 API를 통해 요청 IP의 국가를 손쉽게 확인할 수 있습니다.

 

아래 소스는 CURL이 지원한다는 전제 하에 작동되고, 사전에 WHOIS API KEY 발급이 필요합니다. API KEY는 링크①에서 발급받을 수 있습니다. 라이센스는 'MIT' 입니다.

 


<?php
    $whois_api_key = "";
    echo whois_ascc($whois_api_key, "아이피");
    /*
        사용방법: IP 국가 조회
        - whois_ascc(API_KYE, IP)
        + '레지스트리' 및 '등록 국가 코드' Return('|' 구분)
    */
    function whois_ascc($api_key, $assc_key){
        if(!$api_key && !$assc_key){ exit("Key Error!!"); }
        
        // IP 토대로 국가 조회 기능
        $ch = curl_init();
        @curl_setopt($ch, CURLOPT_URL, "http://whois.kisa.or.kr/openapi/ipascc.jsp?query=".$assc_key."&key=".$api_key."&answer=xml");
        @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     
        @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);      
        @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   
        $exec = curl_exec($ch);
        curl_close($ch); 
        $xml = simplexml_load_string($exec);
        $registry = $xml->registry; #레지스트리(KRNIC이나 대륙별등록기관 혹은 특수 목적을 표기)를 value로 갖는다
        $countryCode = $xml->countryCode; #등록 국가 코드(특수 목적의 경우 'none'으로 표기)를 value로 갖는다.
        if($registry && $countryCode){
            
            return $registry."|".$countryCode;
        } // $registry && $countryCode end
    } // whois_ascc

?>
추천
6

댓글 9개

전체 2,411 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT