2026, 새로운 도약을 시작합니다.

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

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

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

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

[code]

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


?>

[/code]

|

댓글 9개

흠 회사별로 외국 IP를 사서 쓰는 경우나 국내 아이피를 외국에 임대한 경우도 whois를 통해 서 구분이 가능 한지요 ?
상세내용은 kisa로 문의하셔야 할 것 같습니다.
흠 알겠습니다
ip 로 상세 주소 찾기.

댓글 작성

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

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,598
2741 4일 전 조회 125
2740 5일 전 조회 112
2739 1주 전 조회 212
2738 1주 전 조회 221
2737 1주 전 조회 184
2736 2주 전 조회 282
2735 3주 전 조회 288
2734 3주 전 조회 264
2733 1개월 전 조회 267
2732 1개월 전 조회 302
2731 1개월 전 조회 269
2730 1개월 전 조회 227
2729 1개월 전 조회 359
2728 1개월 전 조회 245
2727 1개월 전 조회 422
2726 1개월 전 조회 259
2725 1개월 전 조회 332
2724 1개월 전 조회 363
2723 1개월 전 조회 267
2722 1개월 전 조회 300
2721 1개월 전 조회 214
2720 2개월 전 조회 304
2719 2개월 전 조회 308
2718 2개월 전 조회 202
2717 2개월 전 조회 337
2716 2개월 전 조회 203
2715 2개월 전 조회 313
2714 2개월 전 조회 273
2713 2개월 전 조회 377
2712 2개월 전 조회 289
🐛 버그신고