WHOIS API 통한 IP 국가 조회
Author : 치치     Date :  2019-11-13 18:11:58   Views : 5회  

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

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

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

https://후이즈검색.한국/kor/whois/openAPI_KeyCre.jsp

<?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

?>

 


Tags : #웹개발




❌Delete 🛠Modify 🐣Reply 📄List
No Subject
Author Date Like Views