KR102187938B1 - Ip 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치 - Google Patents
Ip 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치 Download PDFInfo
- Publication number
- KR102187938B1 KR102187938B1 KR1020190076259A KR20190076259A KR102187938B1 KR 102187938 B1 KR102187938 B1 KR 102187938B1 KR 1020190076259 A KR1020190076259 A KR 1020190076259A KR 20190076259 A KR20190076259 A KR 20190076259A KR 102187938 B1 KR102187938 B1 KR 102187938B1
- Authority
- KR
- South Korea
- Prior art keywords
- address
- addresses
- class
- individual
- data processing
- Prior art date
Links
Images
Classifications
-
- H04L61/1552—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
-
- H04L61/2069—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5069—Address allocation for group communication, multicast communication or broadcast communication
-
- H04L61/6095—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/695—Types of network addresses using masks or ranges of addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
IP 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치가 개시된다. 개시된 데이터 처리 방법은 동일한 국가 정보에 대응하는 IP 주소 범위 내 복수의 개별 IP 주소들 중에서 적어도 둘을 클래스 단위로 그룹핑하고, 그룹핑된 IP 주소를 룩업 IP 테이블에 저장한다.
Description
아래의 설명은 IP 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치에 관한 것이다.
종래의 Begin~End의 IP에 대한 국가정보를 사용하여 국가를 검색하는 방법은 하나의 IP 주소에 대해서 IP에 매핑된 국가 정보를 순서적으로 검색하여 해당 IP 주소에 해당하는 특정 국가를 찾아야 한다. 이러한 방식은, 특정 IP 주소의 국가검색시 불필요한 리소스가 낭비되어, 리소스를 많이 사용하게 되며, 대용량의 데이터의 경우에는 고사양의 서버에서도 상당한 시간이 소요되며, 시스템적으로 불가능한 상태가 된다. 따라서, IP 주소의 국가 정보를 빠르게 검색 가능한 기술이 요구된다.
관련 선행기술로, 한국 공개특허공보 제10-2003-0047964호(발명의 명칭: 컴퓨터 및 장치의 인터넷주소 기반 지리적 위치 추론 시스템, 출원인: 주식회사 한매기술)가 있다. 해당 공개특허공보에는 임의의 IP주소에 대하여 WHOIS 검색 및 분석, DNS LOC 검색 및 분석, GeoURL 메타태그 분석 및 IP주소 매핑, 네트워크 경로 추적(Traceroute) 및 분석, Reverse DNS Lookup을 통한 호스트 이름 분석, ISP 및 백본 네트워크 이름 분석, Time-zone 식별 및 경도 추론, 주소정보 수집 분석, 주소/위치 정보 매핑, 웹 사이트 방문 및 위치 링크 탐색과 분석을 이용한 IP를 기반으로 인터넷에 연결된 장치 및 컴퓨터에 대한 효율적인 지리 정보 수집, 분석 및 추론 시스템이 개시된다.
일실시예에 따른 데이터 처리 방법은 동일한 국가 정보에 대응하는 IP 주소 범위 내 복수의 개별 IP 주소들 중에서 적어도 둘을 클래스 단위로 그룹핑하는 단계; 및 상기 그룹핑된 IP 주소를 룩업 IP 테이블에 저장하는 단계를 포함한다.
일실시예에 따른 데이터 처리 방법에서 상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는 상기 복수의 개별 IP 주소들 중 4번째 클래스에서 상이한 값을 갖는 개별 IP 주소들의 개수가 미리 정해진 제1 조건을 만족하면, 상기 제1 조건을 만족하는 개별 IP 주소들을 하나의 1차 그룹 IP 주소로 그룹핑할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 제1 조건은 상기 4번째 클래스에서만 상이한 값을 갖는 개별 IP 주소들의 최대 개수일 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는 상기 제1 조건을 만족하는 개별 IP 주소들을 상기 4번째 클래스에서 미리 정해진 값을 갖는 상기 하나의 1차 그룹 IP 주소로 그룹핑할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 1차 그룹 IP 주소의 1 내지 3번째 클래스는 상기 제1 조건을 만족하는 개별 IP 주소들에서 공통된 클래스 값을 가질 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는 1차 그룹 IP 주소들 중 3번째 클래스에서 상이한 값을 갖는 1차 그룹 IP 주소들의 개수가 미리 정해진 제2 조건을 만족하면, 상기 제2 조건을 만족하는 1차 그룹 IP 주소들을 하나의 2차 그룹 IP 주소로 그룹핑할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 제2 조건은 상기 3번째 클래스에서만 상이한 값을 갖는 1차 그룹 IP 주소들의 최대 개수일 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는 상기 제2 조건을 만족하는 1차 그룹 IP 주소들을 상기 3번째 클래스에서 미리 정해진 값을 갖는 상기 하나의 2차 그룹 IP 주소로 그룹핑할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 2차 그룹 IP 주소의 1 내지 2번째 클래스는 상기 제2 조건을 만족하는 개별 IP 주소들에서 공통된 클래스 값을 가질 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는 2차 그룹 IP 주소들 중 2번째 클래스에서 상이한 값을 갖는 2차 그룹 IP 주소들의 개수가 미리 정해진 제3 조건을 만족하면, 상기 제3 조건을 만족하는 2차 그룹 IP 주소들을 하나의 3차 그룹 IP 주소로 그룹핑할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 제3 조건은 상기 2번째 클래스에서만 상이한 값을 갖는 2차 그룹 IP 주소들의 최대 개수일 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는 상기 제3 조건을 만족하는 2차 그룹 IP 주소들을 상기 2번째 클래스에서 미리 정해진 값을 갖는 상기 하나의 3차 그룹 IP 주소로 그룹핑할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 3차 그룹 IP 주소의 1번째 클래스는 상기 제3 조건을 만족하는 개별 IP 주소들에서 공통된 클래스 값을 가질 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는 상기 IP 주소 범위 내에서 상기 1차 그룹 IP 주소 내지 상기 3차 그룹 IP 주소 중 어느 하나로 그룹핑되지 않은 나머지 IP 주소들 중 적어도 둘을 하나의 올림 IP 주소로 그룹핑할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는 상기 동일한 국가 정보에 대응하는 상기 IP 주소 범위의 마지막 개별 IP 주소에서 상기 IP 주소 범위의 중간 개별 IP 주소까지를 하나의 올림 IP 주소로 그룹핑할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는 상기 마지막 개별 IP 주소의 2 내지 4번째 클래스 값을 미리 정해진 값으로 치환하고, 상기 치환된 마지막 개별 IP 주소와 일치하는 그룹핑된 IP 주소 또는 나머지 IP 주소가 존재하는지 여부를 확인하고, 확인되지 않으면, 상기 마지막 개별 IP 주소의 3 내지 4번째 클래스 값을 미리 정해진 값으로 치환하고, 상기 치환된 마지막 개별 IP 주소와 일치하는 그룹핑된 IP 주소 또는 나머지 IP 주소가 존재하는지 여부를 확인하고, 확인되지 않으면, 상기 마지막 개별 IP 주소의 4번째 클래스 값을 미리 정해진 값으로 치환하고, 상기 치환된 마지막 개별 IP 주소와 일치하는 그룹핑된 IP 주소 또는 나머지 IP 주소가 존재하는지 여부를 확인하며, 확인되면, 상기 마지막 개별 IP 주소로부터 상기 확인된 그룹핑된 IP 주소 또는 나머지 IP 주소까지를 하나의 올림 IP 주소로 그룹핑할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 올림 IP 주소는 상기 나머지 IP 주소들 중 어느 하나 또는 상기 1차 그룹 IP 주소 내지 상기 3차 그룹 IP 주소 중 어느 하나일 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 룩업 IP 테이블에 저장하는 단계는 상기 IP 주소 범위 내에서 상기 1차 그룹 IP 주소 내지 상기 3차 그룹 IP 주소, 올림 IP 주소 중 어느 하나로 그룹핑되지 않은 개별 IP 주소를 추가적으로 상기 룩업 IP 테이블에 저장할 수 있다.
일실시예에 따른 데이터 처리 방법은 상기 룩업 IP 테이블을 이용하여, 검색하고자 하는 대상 IP 주소의 국가 정보를 획득하는 단계를 더 포함할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 대상 IP 주소의 국가 정보를 획득하는 단계는 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소와 일치하는 어느 하나를 클래스 단위로 검색하여, 상기 대상 IP 주소의 국가 정보를 획득할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 대상 IP 주소의 국가 정보를 획득하는 단계는 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1 내지 4번째 클래스 값이 모두 일치하는 어느 하나를 검색하고, 검색되지 않으면, 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1 내지 3번째 클래스 값이 일치하는 어느 하나를 검색하고, 검색되지 않으면, 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1 내지 2번째 클래스 값이 일치하는 어느 하나를 검색하고, 검색되지 않으면, 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1번째 클래스 값이 일치하는 어느 하나를 검색하고, 검색되면, 검색된 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 대상 IP 주소의 국가 정보를 획득하는 단계는 상기 룩업 IP 테이블에 저장된 IP 주소들에서, 상기 대상 IP 주소의 1 내지 4번째 클래스 값이 모두 일치하는 제1 IP 주소, 상기 대상 IP 주소의 1 내지 3번째 클래스 값이 일치하는 제2 IP 주소, 상기 대상 IP 주소의 1 내지 2번째 클래스 값이 일치하는 제3 IP 주소 및 상기 대상 IP 주소의 1번째 클래스 값이 일치하는 제4 IP 주소를 검색하고, 상기 제1 IP 주소가 검색되면, 상기 제1 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득하고, 상기 제1 IP 주소가 검색되지 않고, 상기 제2 IP 주소가 검색되면, 상기 제2 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득하고, 상기 제1 IP 주소, 상기 제2 IP 주소가 검색되지 않고, 상기 제3 IP 주소가 검색되면, 상기 제3 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득하고, 상기 제1 IP 주소, 상기 제2 IP 주소 및 상기 제3 IP 주소가 검색되지 않고, 상기 제4 IP 주소가 검색되면, 상기 제4 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득할 수 있다.
일실시예에 따른 데이터 처리 방법은 동일한 국가 정보에 각각 대응하는 복수의 IP 주소 범위들 중 어느 하나에 속하지 않는 개별 IP 주소에 미리 정해진 정보를 매핑시키는 단계를 더 포함할 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 IP 주소 범위 내 복수의 개별 IP 주소들은 상기 IP 주소 범위의 시작 IP 주소로부터 끝 IP 주소까지 클래스 단위로 확장되어 결정될 수 있다.
일실시예에 따른 데이터 처리 방법에서 상기 IP 주소 범위 내 복수의 개별 IP 주소들은 상기 IP 주소 범위의 시작 IP 주소부터 4번째 클래스 값이 순차적으로 증가하도록 확장되고, 상기 4번째 클래스 값이 가장 큰 숫자에 도달하면 3번째 클래스 값이 순차적으로 증가하도록 확장되고, 상기 3번째 클래스 값이 가장 큰 숫자에 도달하면 2번째 클래스 값이 순차적으로 증가하도록 확장되고, 상기 2번째 클래스 값이 가장 큰 숫자에 도달하면 1번째 클래스 값이 순차적으로 증가하도록 확장되되, 상기 IP 주소 범위의 끝 IP 주소를 넘지 않는 선에서 확장됨으로써, 결정될 수 있다.
일실시예에 따른 데이터 처리 장치는 프로세서; 및 상기 프로세서에 의해 실행 가능한 적어도 하나의 명령어를 포함하는 메모리를 포함하고, 상기 적어도 하나의 명령어가 상기 프로세서에서 실행되면, 상기 프로세서는 동일한 국가 정보에 대응하는 IP 주소 범위 내 복수의 개별 IP 주소들 중에서 적어도 둘을 클래스 단위로 그룹핑하고, 상기 그룹핑된 IP 주소를 룩업 IP 테이블에 저장한다.
도 1은 일실시예에 따라 데이터 처리 시스템을 나타낸 도면이다.
도 2는 일실시예에 따른 데이터 처리 장치의 동작을 설명하기 위한 도면이다.
도 3은 일실시예에 따라 개별 IP 주소들을 그룹핑하여 룩업 IP 테이블에 저장하는 과정을 설명하기 위한 도면이다.
도 4 및 도 5는 일실시예에 따른 단절된 구간을 연결하는 과정을 설명하기 위한 도면이다.
도 6은 일실시예에 따른 가공 준비 데이터를 생성하는 과정을 설명하기 위한 도면이다.
도 7 및 도 8은 일실시예에 따른 상위 그룹핑을 설명하기 위한 도면이다.
도 9 및 도 10은 일실시예에 따른 올림 그룹핑을 설명하기 위한 도면이다.
도 11은 일실시예에 따른 그룹핑 결과 예시를 나타낸 도면이다.
도 12 내지 도 15는 일실시예에 따라 대상 IP 주소의 국가 정보를 획득하는 과정을 설명하기 위한 도면이다.
도 16은 일실시예에 따른 데이터 처리 방법을 나타낸 도면이다.
도 17은 일실시예에 따른 데이터 처리 장치를 나타낸 도면이다.
도 2는 일실시예에 따른 데이터 처리 장치의 동작을 설명하기 위한 도면이다.
도 3은 일실시예에 따라 개별 IP 주소들을 그룹핑하여 룩업 IP 테이블에 저장하는 과정을 설명하기 위한 도면이다.
도 4 및 도 5는 일실시예에 따른 단절된 구간을 연결하는 과정을 설명하기 위한 도면이다.
도 6은 일실시예에 따른 가공 준비 데이터를 생성하는 과정을 설명하기 위한 도면이다.
도 7 및 도 8은 일실시예에 따른 상위 그룹핑을 설명하기 위한 도면이다.
도 9 및 도 10은 일실시예에 따른 올림 그룹핑을 설명하기 위한 도면이다.
도 11은 일실시예에 따른 그룹핑 결과 예시를 나타낸 도면이다.
도 12 내지 도 15는 일실시예에 따라 대상 IP 주소의 국가 정보를 획득하는 과정을 설명하기 위한 도면이다.
도 16은 일실시예에 따른 데이터 처리 방법을 나타낸 도면이다.
도 17은 일실시예에 따른 데이터 처리 장치를 나타낸 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 아래의 특정한 구조적 내지 기능적 설명들은 단지 실시예들을 설명하기 위한 목적으로 예시된 것으로, 실시예의 범위가 본문에 설명된 내용에 한정되는 것으로 해석되어서는 안된다. 관련 기술 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타내며, 공지된 기능 및 구조는 생략하도록 한다.
도 1은 일실시예에 따라 데이터 처리 시스템을 나타낸 도면이다.
도 1을 참조하면, 일실시예에 따른 데이터 처리 시스템(100)은 데이터 처리 장치(110) 및 데이터베이스(120)를 포함할 수 있다.
일실시예에 따른 데이터 처리 장치(110)는 IP 주소 및 국가 정보에 관련된 데이터를 처리할 수 있다. 여기서, IP 주소와 국가 정보는 서로 대응될 수 있다.
IP 주소(Internet Protocol address)는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 수행하기 위해 사용되는 정보로서, 숫자로 구성될 수 있다. IP 주소는 IPv4(IP version 4) 형식에 따른 32비트로 구성되고, 4개의 256진수로 표현될 수 있다. 예를 들면, IP 주소는 0.0.0.0부터 255.255.255.255까지 범위 내의 어느 하나의 숫자로 표현될 수 있다.
IP 주소는 4개의 256진수들이 "."으로 구분된 형태를 가지는데, "."에 의해 클래스가 구분될 수 있다. 따라서, IP 주소는 4개의 클래스를 가지며, 가장 왼쪽에 위치한 256진수가 1번째 클래스 값이 되며, 가장 오른쪽에 위치한 256진수가 4번째 클래스 값이 될 수 있다.
다른 예시로, IP 주소는 IPv6(IP version 6) 형식에 기반하여 표현될 수도 있으나, 설명의 편의를 위해 본 명세서에서는 IPv4 형식에 따라 표현된 IP 주소를 기준으로 설명하며, IPv4 형식에 따라 표현된 IP 주소를 기준으로 한 아래의 설명이 IPv6 형식 등 다른 형식에 따라 표현된 IP 주소에도 적용될 수 있음이 해당 기술분야에서 통상의 지식을 가진 자에게 자명하다.
국가 정보는 IP 주소에 매핑된 국가에 대한 정보로서, 예를 들어, 해당 IP 주소로 통신을 수행하는 장치가 속한 국가를 나타낼 수 있다.
데이터 처리 장치(110)는 데이터베이스(120)에 저장된 룩업 IP 테이블을 이용하여, 검색하고자 하는 대상 IP 주소의 국가 정보를 획득할 수 있다. 데이터베이스(120)에 저장된 룩업 IP 테이블은 IP 주소와 국가 정보가 서로 매칭된 리스트를 포함할 수 있다. 이 때, 룩업 IP 테이블에 저장된 IP 주소는 동일한 국가 정보에 대응하는 복수의 개별 IP 주소들이 그룹핑된 IP 주소를 포함할 수 있다. 데이터 처리 장치(110)는 룩업 IP 테이블에서 대상 IP 주소에 매칭되는 것을 검색함으로써, 대상 IP 주소의 국가 정보를 결정할 수 있다.
이처럼, 여러 개별 IP 정보를 하나의 그룹핑된 IP 정보로 압축하여 저장한 룩업 IP 테이블을 이용하여 대상 IP 주소의 국가 정보를 획득함으로써, 적은 리소스에서도 보다 빠른 검색 속도를 기대할 수 있으며, 이처럼 빠른 속도로 획득한 국가 정보를 활용한 다양한 서비스를 효과적으로 제공할 수 있다.
도 2는 일실시예에 따른 데이터 처리 장치의 동작을 설명하기 위한 도면이다.
도 2를 참조하면, 일실시예에 따른 데이터 처리 장치의 그룹핑 동작 및 검색 동작을 설명하기 위한 예시가 도시된다.
일실시예에 따르면, 데이터 처리 장치는 검색 동작에 앞서 그룹핑 동작을 수행함으로써 레코드 개수를 줄일 수 있다. 원본 데이터는 변환 전 IP 주소에 대한 데이터로서, 예를 들어, beginIp, endIp, beginIpNum, endIpNum, countryCode를 포함한 항목들을 포함할 수 있다. 여기서, beginIp는 해당 항목의 시작 IP 주소를 나타내고, endIp는 해당 항목의 끝 IP 주소를 나타낸다. beginIpNum는 4개의 256진수로 표현된 beginIp를 10진수로 변환한 것이고, endIpNum은 4개의 256진수로 표현된 endIp를 10진수로 변환한 것이다. countryCode는 해당 항목에 해당하는 국가 정보를 나타낸다.
일실시예에 따르면, beginIp 211.168.0.0와 endIp 211.255.255.255에 해당하는 항목은 동일한 국가 정보 "KR"에 대응하는 IP 주소 범위에 속하는 총 5,767,168개의 개별 IP 주소들로 변환될 수 있다. 설명의 편의를 위해 이를 가공 준비 데이터라고 지칭한다. 가공 준비 데이터에 포함된 둘 이상의 개별 IP 주소들이 그룹핑됨으로써, 레코드 개수가 88건으로 줄어들 수 있다. 실시예에 따라서는, 가공 준비 데이터는 설명의 편의를 위한 것으로 실제 생성되지 않을 수도 있으며, 이 경우 원본 데이터로부터 바로 그룹핑된 IP 주소가 결정되어 룩업 IP 테이블에 저장될 수 있다.
또한, 데이터 처리 장치는 검색하고자 하는 대상 IP 주소(예컨대, 211.172.25.59)의 국가 정보를 룩업 IP 테이블에서 검색하여 획득할 수 있다. 먼저, 데이터 처리 장치는 대상 IP 주소의 D 클래스 탐색을 통해 국가 정보를 검색 및 획득할 수 있다. 여기서, D 클래스는 대상 IP 주소의 1 내지 4번째 클래스 값을 모두 포함한 것을 의미할 수 있다. 이를테면, 데이터 처리 장치는 대상 IP 주소의 1 내지 4번째 클래스 값이 모두 동일한 IP 주소가 룩업 IP 테이블에 존재하는지 여부를 확인할 수 있다.
만약 D 클래스로 대상 IP 주소에 일치하는 IP 주소가 룩업 IP 테이블에 존재하지 않는 경우, 데이터 처리 장치는 대상 IP 주소의 C 클래스 탐색을 통해 국가 정보를 검색 및 획득할 수 있다. 여기서, C 클래스는 대상 IP 주소의 1 내지 3번째 클래스 값을 포함하고, 4번째 클래스 값으로 미리 정해진 값 "0"을 포함하는 것을 의미할 수 있다. 이를테면, 데이터 처리 장치는 대상 IP 주소의 4번째 클래스 값을 미리 정해진 값 "0"으로 치환한 것과 동일한 IP 주소가 룩업 IP 테이블에 존재하는지 여부를 확인할 수 있다.
만약 C 클래스로 대상 IP 주소에 일치하는 IP 주소가 룩업 IP 테이블에 존재하지 않는 경우, 데이터 처리 장치는 대상 IP 주소의 B 클래스 탐색을 통해 국가 정보를 검색 및 획득할 수 있다. 여기서, B 클래스는 대상 IP 주소의 1 내지 2번째 클래스 값을 포함하고, 3 내지 4번째 클래스 값으로 미리 정해진 값 "0"을 포함하는 것을 의미할 수 있다. 이를테면, 데이터 처리 장치는 대상 IP 주소의 3 내지 4번째 클래스 값을 미리 정해진 값 "0"으로 치환한 것과 동일한 IP 주소가 룩업 IP 테이블에 존재하는지 여부를 확인할 수 있다.
만약 B 클래스로 대상 IP 주소에 일치하는 IP 주소가 룩업 IP 테이블에 존재하지 않는 경우, 데이터 처리 장치는 대상 IP 주소의 A 클래스 탐색을 통해 국가 정보를 검색 및 획득할 수 있다. 여기서, A 클래스는 IP 주소의 1번째 클래스 값을 포함하고, 2 내지 4번째 클래스 값으로 미리 정해진 값 "0"을 포함하는 것을 의미할 수 있다. 이를테면, 데이터 처리 장치는 대상 IP 주소의 2 내지 4번째 클래스 값을 미리 정해진 값 "0"으로 치환한 것과 동일한 IP 주소가 룩업 IP 테이블에 존재하는지 여부를 확인할 수 있다.
도 2에 도시된 예시에서는, B 클래스 탐색으로 대상 IP 주소에 매칭되는 것이 룩업 IP 테이블에 존재하는 것이 탐색되었으므로, A 클래스 탐색은 실제 수행되지 않을 수 있으며, B 클래스 탐색으로 대상 IP 주소의 국가 정보가 "KR"로 획득될 수 있다.
도 3은 일실시예에 따라 개별 IP 주소들을 그룹핑하여 룩업 IP 테이블에 저장하는 과정을 설명하기 위한 도면이다.
도 3을 참조하면, 일실시예에 따라 데이터 처리 장치에 구비된 프로세서에서 수행되는 그룹핑 동작이 도시된다.
단계(310)에서, 데이터 처리 장치는 원본 데이터에 포함된 항목들 사이에 단절된 구간을 연결할 수 있다. 예를 들어, 데이터 처리 장치는 원본 데이터에 포함된 항목들의 beginIp 및 endIp를 이용하여 단절된 구간을 확인하고, 단절된 구간에 국가 정보가 "없음"인 새로운 항목을 생성함으로써, 단절된 구간을 연결할 수 있다.
단계(320)에서, 데이터 처리 장치는 원본 데이터에 포함된 항목들 각각을 복수의 개별 IP 주소들로 변환하여 가공 준비 데이터를 생성할 수 있다. 실시예에 따라서는 단계(320)가 생략될 수도 있다.
단계(330)에서, 데이터 처리 장치는 동일한 국가 정보에 대응하는 IP 주소 범위 내 복수의 개별 IP 주소들 중에서 적어도 둘을 클래스 단위로 그룹핑한다. 단계(330)는 단계(331) 내지 단계(337)를 포함할 수 있다.
단계(331)에서, 데이터 처리 장치는 C 클래스 그룹핑을 적용하여, 복수의 개별 IP 주소들 중 4번째 클래스에서 상이한 값을 갖는 개별 IP 주소들의 개수가 미리 정해진 제1 조건을 만족하면, 제1 조건을 만족하는 개별 IP 주소들을 하나의 1차 그룹 IP 주소로 그룹핑할 수 있다.
단계(333)에서, 데이터 처리 장치는 B 클래스 그룹핑을 적용하여, 1차 그룹 IP 주소들 중 3번째 클래스에서 상이한 값을 갖는 1차 그룹 IP 주소들의 개수가 미리 정해진 제2 조건을 만족하면, 제2 조건을 만족하는 1차 그룹 IP 주소들을 하나의 2차 그룹 IP 주소로 그룹핑할 수 있다.
단계(335)에서, 데이터 처리 장치는 A 클래스 그룹핑을 적용하여, 2차 그룹 IP 주소들 중 2번째 클래스에서 상이한 값을 갖는 2차 그룹 IP 주소들의 개수가 미리 정해진 제3 조건을 만족하면, 제3 조건을 만족하는 2차 그룹 IP 주소들을 하나의 3차 그룹 IP 주소로 그룹핑할 수 있다.
단계(337)에서, 데이터 처리 장치는 올림 그룹핑을 적용하여, 동일한 국가 정보에 대응하는 IP 주소 범위 내에서 1차 그룹 IP 주소 내지 3차 그룹 IP 주소 중 어느 하나로 그룹핑되지 않은 나머지 IP 주소들 중 일부 클래스 값이 공통되는 적어도 둘을 하나의 올림 IP 주소로 그룹핑할 수 있다.
단계(340)에서, 데이터 처리 장치는 그룹핑된 IP 주소를 룩업 IP 테이블에 저장한다. 데이터 처리 장치는 동일한 국가 정보에 대응하는 IP 주소 범위 내에서 1차 그룹 IP 주소 내지 3차 그룹 IP 주소 및 올림 IP 주소 중 어느 하나로 그룹핑되지 않은 개별 IP 주소도 룩업 IP 테이블에 저장할 수 있다.
이하, 도 4 내지 도 11을 참조하여 데이터 처리 장치의 그룹핑 동작에 대해 상세히 설명한다.
도 4 및 도 5는 일실시예에 따른 단절된 구간을 연결하는 과정을 설명하기 위한 도면이다.
도 4를 참조하면, 일실시예에 따른 데이터 처리 장치에 구비된 프로세서에서 수행되는 단절된 구간 연결 동작이 도시된다.
단계(410)에서, 데이터 처리 장치는 원본 데이터에 포함된 항목들을 beginIpNum로 정렬시킬 수 있다. 단계(420)에서, 데이터 처리 장치는 이전 로우(low)의 endIpNum을 조회할 수 있다. 단계(430)에서, 데이터 처리 장치는 "해당 로우의 beginIpNum - 이전 로우의 endIpNum"가 1인지 여부를 확인할 수 있다. 만약 1이 아니라면 단절된 구간이 존재하는 것이므로, 단계(440)에서, 데이터 처리 장치는 이전 로우의 endIpNum부터 해당 로우의 beginIpNum까지를 단절된 구간의 레코드로 추출할 수 있다. 단계(450)에서, 데이터 처리 장치는 추출된 레코드를 단절된 구간의 항목으로 추가할 수 있다. 단계(460)에서, 데이터 처리 장치는 다음 로우로 이동하여 단계(420)를 다시 수행할 수 있다. 만약 단계(430)에서 "해당 로우의 beginIpNum - 이전 로우의 endIpNum"가 1로 확인되면, 단절된 구간이 존재하지 않는 것이므로, 단계(460)가 이어서 수행될 수 있다.
도 5를 참조하면, 일실시예에 따른 원본 데이터에 단절된 구간들이 존재하는 예시가 도시된다.
도 6은 일실시예에 따른 가공 준비 데이터를 생성하는 과정을 설명하기 위한 도면이다.
도 6을 참조하면, 일실시예에 따른 데이터 처리 장치에 구비된 프로세서에서 수행되는 가공 준비 데이터 생성 동작이 도시된다.
단계(610)에서, 데이터 처리 장치는 동일한 국가 정보에 대응하는 IP 주소 범위의 시작 IP 주소 beginIp 및 끝 IP 주소 endIp를 이용하여, 가공 준비 데이터의 레코드 개수를 계산할 수 있다. 예를 들어, 데이터 처리 장치는 개별 IP 주소들이 IP 주소 범위의 시작 IP 주소 beginIp로부터 끝 IP 주소 endIp까지 클래스 단위로 확장되어 결정되는 방식을 이용하여, 가공 준비 데이터의 레코드 개수를 계산할 수 있다. 단계(620)에서, 데이터 처리 장치는 순차적으로 생성되는 개별 IP 주소를 결정할 수 있다. 단계(630)에서, 데이터 처리 장치는 레코드를 확장하면서, 앞서 결정된 개별 IP 주소를 적용할 수 있다. 여기서, 동일한 국가 정보에 대응하는 IP 주소 범위 내 개별 IP 주소들이 가공 준비 데이터에 해당할 수 있다.
일실시예에 따른 복수의 개별 IP 주소들은 IP 주소 범위의 시작 IP 주소부터 4번째 클래스 값이 순차적으로 증가하도록 확장되고, 4번째 클래스 값이 가장 큰 숫자에 도달하면 3번째 클래스 값이 순차적으로 증가하도록 확장되고, 3번째 클래스 값이 가장 큰 숫자에 도달하면 2번째 클래스 값이 순차적으로 증가하도록 확장되고, 2번째 클래스 값이 가장 큰 숫자에 도달하면 1번째 클래스 값이 순차적으로 증가하도록 확장되되, IP 주소 범위의 끝 IP 주소를 넘지 않는 선에서 확장됨으로써, 결정될 수 있다.
일실시예가 도시된 도 6에서는, 개별 IP 주소들(631)은 시작 IP 주소부터 4번째 클래스 값이 순차적으로 증가하도록 확장됨으로써 결정되고, 개별 IP 주소들(633)은 앞서 4번째 클래스 값이 가장 큰 숫자에 도달하였으므로, 3번째 클래스 값이 순차적으로 증가하도록 확장됨으로써 결정되며, 개별 IP 주소들(635)은 앞서 3번째 클래스 값이 가장 큰 숫자에 도달하였으므로, 2번째 클래스 값이 순차적으로 증가하도록 확장됨으로써 결정될 수 있다.
도 7 및 도 8은 일실시예에 따른 상위 그룹핑을 설명하기 위한 도면이다.
도 7을 참조하면, 일실시예에 따른 상위 그룹핑을 설명하기 위한 예시가 도시된다. 도 7에서는 설명의 편의를 위하여 원본 데이터 내 한 항목을 기준으로 설명한다. 국가 정보 "KR"에 대응하는 IP 주소 범위는 beginIp 211.168.0.0과 endIp 211.255.255.255로 결정될 수 있다. 그룹핑 전 IP 주소 범위 내 복수의 개별 IP 주소들의 개수는 5,767,168개일 수 있다.
일실시예에 따르면, 데이터 처리 장치는 동일한 국가 정보에 대응하는 IP 주소 범위 내 복수의 개별 IP 주소들 중에서 적어도 둘을 클래스 단위로 그룹핑할 수 있다.
먼저, 1차 상위 그룹핑(또는, C 클래스 그룹핑)이 수행될 수 있다. 데이터 처리 장치는 복수의 개별 IP 주소들 중 4번째 클래스에서 상이한 값을 갖는 개별 IP 주소들의 개수가 미리 정해진 제1 조건을 만족하면, 제1 조건을 만족하는 개별 IP 주소들을 하나의 1차 그룹 IP 주소로 그룹핑할 수 있다. 여기서, 제1 조건은 4번째 클래스에서만 상이한 값을 갖는 개별 IP 주소들의 최대 개수일 수 있다. 데이터 처리 장치는 제1 조건을 만족하는 개별 IP 주소들을 4번째 클래스에서 미리 정해진 값(예컨대, "0")을 갖는 하나의 1차 그룹 IP 주소로 그룹핑할 수 있고, 이 때, 1차 그룹 IP 주소의 1 내지 3번째 클래스는 제1 조건을 만족하는 개별 IP 주소들에서 공통된 클래스 값을 가질 수 있다.
예를 들어, 복수의 개별 IP 주소들 211.168.0.0~211.168.0.255은 1 내지 3번째 클래스 값이 각각 211, 168, 0으로 공통되고, 4번째 클래스 값만이 서로 상이하다. 따라서, 4번째 클래스에서 상이한 값을 갖는 개별 IP 주소들의 개수가 256개로 제1 조건을 만족하게 되므로, 복수의 개별 IP 주소들 211.168.0.0~211.168.0.255은 1차 그룹 IP 주소 211.168.0.0로 그룹핑될 수 있다(710). 각 클래스 값은 0~255 중 어느 하나의 숫자를 가질 수 있으므로, 최대 개수는 256개가 될 수 있다.
마찬가지로, 나머지 개별 IP 주소들에 대해서도 앞서 설명한 1차 상위 그룹핑이 수행될 수 있다.
다시 말해, 데이터 처리 장치는 복수의 개별 IP 주소들 중 1 내지 3번째 클래스에서 동일한 값을 갖는 개별 IP 주소들이 미리 정해진 제1 조건을 만족하면, 제1 조건을 만족하는 개별 IP 주소들을 동일한 1 내지 3번째 클래스 값을 갖는 하나의 1차 그룹 IP 주소로 그룹핑할 수 있다.
그리고, 2차 상위 그룹핑(또는, B 클래스 그룹핑)이 수행될 수 있다. 데이터 처리 장치는 1차 그룹 IP 주소들 중 3번째 클래스에서 상이한 값을 갖는 1차 그룹 IP 주소들의 개수가 미리 정해진 제2 조건을 만족하면, 제2 조건을 만족하는 1차 그룹 IP 주소들을 하나의 2차 그룹 IP 주소로 그룹핑할 수 있다. 여기서, 제2 조건은 3번째 클래스에서만 상이한 값을 갖는 1차 그룹 IP 주소들의 최대 개수일 수 있다. 데이터 처리 장치는 제2 조건을 만족하는 1차 그룹 IP 주소들을 3번째 클래스에서 미리 정해진 값(예컨대, "0")을 갖는 하나의 2차 그룹 IP 주소로 그룹핑할 수 있고, 이 때, 2차 그룹 IP 주소의 1 내지 2번째 클래스는 제2 조건을 만족하는 1차 그룹 IP 주소들에서 공통된 클래스 값을 가질 수 있다.
예를 들어, 1차 그룹 IP 주소들 211.168.0.0~211.168.255.0은 1 내지 2, 4번째 클래스 값이 각각 211, 168, 0으로 공통되고, 3번째 클래스 값만이 서로 상이하다. 따라서, 3번째 클래스에서 상이한 값을 갖는 1차 그룹 IP 주소들의 개수가 256개로 제2 조건을 만족하게 되므로, 1차 그룹 IP 주소들 211.168.0.0~211.168.255.0은 2차 그룹 IP 주소 211.168.0.0로 그룹핑될 수 있다(720). 각 클래스 값은 0~255 중 어느 하나의 숫자를 가질 수 있으므로, 최대 개수는 256개가 될 수 있다.
마찬가지로, 나머지 1차 그룹 IP 주소들에 대해서도 앞서 설명한 2차 상위 그룹핑이 수행될 수 있다.
다시 말해, 데이터 처리 장치는 1차 그룹 IP 주소들 중 1 내지 2번째 클래스에서 동일한 값을 갖는 1차 그룹 IP 주소들이 미리 정해진 제2 조건을 만족하면, 제2 조건을 만족하는 1차 그룹 IP 주소들을 동일한 1 내지 2번째 클래스 값을 갖는 하나의 2차 그룹 IP 주소로 그룹핑할 수 있다.
그리고, 3차 상위 그룹핑(또는, A 클래스 그룹핑)이 수행될 수 있다. 데이터 처리 장치는 2차 그룹 IP 주소들 중 2번째 클래스에서 상이한 값을 갖는 2차 그룹 IP 주소들의 개수가 미리 정해진 제3 조건을 만족하면, 제3 조건을 만족하는 2차 그룹 IP 주소들을 하나의 3차 그룹 IP 주소로 그룹핑할 수 있다. 여기서, 제3 조건은 2번째 클래스에서만 상이한 값을 갖는 2차 그룹 IP 주소들의 최대 개수일 수 있다. 데이터 처리 장치는 제3 조건을 만족하는 2차 그룹 IP 주소들을 2번째 클래스에서 미리 정해진 값(예컨대, "0")을 갖는 하나의 3차 그룹 IP 주소로 그룹핑할 수 있고, 이 때, 3차 그룹 IP 주소의 1번째 클래스는 제3 조건을 만족하는 2차 그룹 IP 주소들에서 공통된 클래스 값을 가질 수 있다.
도 7에 도시된 예시에서는, 3차 상위 그룹핑이 적용되지 않으므로, 설명의 편의 상 2차 그룹 IP 주소들 211.0.0.0~211.255.0.0이 존재한다고 가정한다. 2차 그룹 IP 주소들 211.0.0.0~211.255.0.0은 1, 3, 4번째 클래스 값이 각각 211, 0, 0으로 공통되고, 2번째 클래스 값만이 서로 상이하다. 따라서, 2번째 클래스에서 상이한 값을 갖는 2차 그룹 IP 주소들의 개수가 256개로 제3 조건을 만족하게 되므로, 2차 그룹 IP 주소들 211.0.0.0~211.255.0.0은 3차 그룹 IP 주소 211.0.0.0로 그룹핑될 수 있다. 각 클래스 값은 0~255 중 어느 하나의 숫자를 가질 수 있으므로, 최대 개수는 256개가 될 수 있다.
마찬가지로, 나머지 2차 그룹 IP 주소들에 대해서도 앞서 설명한 2차 상위 그룹핑이 수행될 수 있다.
다시 말해, 데이터 처리 장치는 2차 그룹 IP 주소들 중 1번째 클래스에서 동일한 값을 갖는 2차 그룹 IP 주소들이 미리 정해진 제3 조건을 만족하면, 제3 조건을 만족하는 2차 그룹 IP 주소들을 동일한 1번째 클래스 값을 갖는 하나의 3차 그룹 IP 주소로 그룹핑할 수 있다.
도 8을 참조하면, 일실시예에 따른 데이터 처리 장치에 구비된 프로세서에서 수행되는 상위 그룹핑 동작이 도시된다. 도 8에서 설명의 편의상 기재된 'x 클래스'는 A 클래스 내지 C 클래스 중 어느 하나의 클래스를 나타낼 수 있다. 예를 들어, C 클래스 그룹핑 동작에서 'x 클래스'는 C 클래스를 의미하고, B 클래스 그룹핑 동작에서 'x 클래스'는 B 클래스를 의미하며, A 클래스 그룹핑 동작에서 'x 클래스'는 A 클래스를 의미한다.
단계(810)에서, 데이터 처리 장치는 x 클래스별 국가별 건수를 계산할 수 있다. 단계(820)에서, 데이터 처리 장치는 건수가 256개인 x 클래스를 temp에 저장할 수 있다. 단계(830)에서, 데이터 처리 장치는 temp에 존재하는 x 클래스 데이터를 삭제할 수 있다. 단계(840)에서, 데이터 처리 장치는 건수가 256개인 x 클래스를 저장할 수 있다.
도 9 및 도 10은 일실시예에 따른 올림 그룹핑을 설명하기 위한 도면이다.
도 9를 참조하면, 일실시예에 따른 데이터 처리 장치에 구비된 프로세서에서 수행되는 올림 그룹핑 동작이 도시된다.
단계(910)에서, 데이터 처리 장치는 IpNum 순서대로 국가를 나열할 수 있다. 예를 들어, 데이터 처리 장치는 1차 상위 그룹핑 내지 3차 그룹핑이 적용된 IP 주소들을 IP 주소 순서대로 나열할 수 있다.
단계(920)에서, 데이터 처리 장치는 동일한 국가에 대해서는 동일값을 부여하고, 국가가 변경되면 순차적인 숫자를 부여할 수 있다. 예를 들어, 국가 정보 "KR"에 해당하는 IP 주소들이 나열되다가 다른 국가 정보 "US"에 해당하는 IP 주소들이 나열되면, 국가 정보 "US"에 해당하는 IP 주소들에 대해서는 국가별 순차 증가값을 1만큼 증가시킬 수 있다.
단계(930)에서, 데이터 처리 장치는 부여된 동일 숫자의 마지막 IP 주소를 식별할 수 있다. 도 9의 예시에서는, 8번째 개별 IP 주소와 15번째 개별 IP 주소가 식별될 수 있다.
단계(940)에서, 데이터 처리 장치는 식별된 개별 IP 주소의 2 내지 4번째 클래스 값을 0으로 치환한 후, 동일한 국가 정보에 대응하는 IP 주소들 중 일치하는 것이 존재하는지 확인할 수 있다. 도 9의 예시에서, 8번째 개별 IP 주소는 176.0.0.0으로 치환되고, 15번째 개별 IP 주소는 176.0.0.0으로 치환될 수 있으나, 동일한 국가 정보에 대응하는 IP 주소들 중 치환된 IP 주소와 일치하는 것이 존재하지 않는다. 따라서, 단계(950)가 이어서 수행될 수 있다.
단계(950)에서, 데이터 처리 장치는 식별된 개별 IP 주소의 3, 4번째 클래스 값을 0으로 치환한 후, 동일한 국가 정보에 대응하는 IP 주소들 중 일치하는 것이 존재하는지 확인할 수 있다. 도 9의 예시에서, 8번째 개별 IP 주소는 176.122.0.0으로 치환되고, 15번째 개별 IP 주소는 176.122.0.0으로 치환될 수 있다. 이 때, 8번째 개별 IP 주소의 치환된 IP 주소와 일치하는 IP 주소 176.122.0.0이 확인될 수 있다.
단계(960)에서, 데이터 처리 장치는 식별된 개별 IP 주소의 4번째 클래스 값을 0으로 치환한 후, 동일한 국가 정보에 대응하는 IP 주소들 중 일치하는 것이 존재하는지 확인할 수 있다. 도 9의 예시에서, 8번째 개별 IP 주소는 단계(950)에서 일치하는 것을 확인하였으므로 단계(960)가 수행되지 않으나, 15번째 개별 IP 주소는 단계(950)에서도 일치하는 것이 확인되지 않았으므로, 단계(960)이 수행될 수 있다. 15번째 개별 IP 주소는 176.122.24.0으로 치환되고, 치환된 IP 주소와 일치하는 IP 주소 176.122.24.0이 확인될 수 있다.
단계(970)에서, 데이터 처리 장치는 확인된 IP 주소로부터 마지막 IP 주소까지 올림 그룹핑을 수행할 수 있다. 데이터 처리 장치는 확인된 IP 주소로부터 마지막 IP 주소까지를 확인된 IP 주소로 올림 그룹핑할 수 있다. 예를 들어, 데이터 처리 장치는 올림 그룹핑이 수행되는 IP 주소들 중에서 확인된 IP 주소를 제외한 나머지 IP 주소들은 모두 삭제함으로써, 확인된 IP 주소로 상위 그룹핑을 수행할 수 있다. 도 9의 예시에서, 4 내지 8번째 개별 IP 주소는 삭제되어 3번째 개별 IP 주소로 올림 그룹핑되며, 15번째 개별 IP 주소는 삭제되어 14번째 개별 IP 주소로 올림 그룹핑될 수 있다.
만약 단계(960)에서도 일치하는 IP 주소가 확인되지 않으면, 올림 그룹핑이 수행될 수 없는 것으로 판단되어, 단계(980)에서 올림 그룹핑 동작이 종료될 수 있다.
도 10을 참조하면, 일실시예에 따라 올림 그룹핑이 수행되는 예시가 도시된다. 도 10의 예시에서, 3차 상위 그룹핑된 IP 주소들(176.121.0.0~176.122.23.29)은 176.122.0.0으로 올림 그룹핑될 수 있다. 반면, 다는 국가 정보에 해당하는 IP 주소들(176.122.23.30~176.122.23.33)에 대해서는 앞서 설명한 조건이 만족하지 않으므로 올림 그룹핑이 수행되지 않는다.
도 11은 일실시예에 따른 그룹핑 결과 예시를 나타낸 도면이다.
도 11을 참조하면, 일실시예에 따른 그룹핑 결과의 예시가 도시된다. 이처럼, 1차 상위 그룹핑 내지 3차 상위 그룹핑 및 올림 그룹핑을 통해 동일 국가 정보에 해당하는 개별 IP 주소들을 그룹핑을 수행함으로써, 효과적으로 레코드 개수를 감소시킬 수 있고, 데이터 처리 비용이 낮아지며 빠른 검색을 기대해볼 수 있다.
도 12 내지 도 15는 일실시예에 따라 대상 IP 주소의 국가 정보를 획득하는 과정을 설명하기 위한 도면이다.
도 12를 참조하면, 일실시예에 따른 데이터 처리 장치에 구비된 프로세서에서 수행되는 검색 동작이 도시된다. 데이터 처리 장치는 아래와 같이 룩업 IP 테이블을 이용하여, 검색하고자 하는 대상 IP 주소의 국가 정보를 획득할 수 있다.
단계(1210)에서, 데이터 처리 장치는 룩업 IP 테이블에 저장된 IP 주소들 중 대상 IP 주소의 1 내지 4번째 클래스 값이 모두 일치하는 IP 주소를 검색할 수 있다. 만약 검색되지 않으면 단계(1220)가 이어서 수행될 수 있다.
단계(1220)에서, 데이터 처리 장치는 룩업 IP 테이블에 저장된 IP 주소들 중 대상 IP 주소의 1 내지 3번째 클래스 값이 모두 일치하는 IP 주소를 검색할 수 있다. 만약 검색되지 않으면 단계(1230)가 이어서 수행될 수 있다.
단계(1230)에서, 데이터 처리 장치는 룩업 IP 테이블에 저장된 IP 주소들 중 대상 IP 주소의 1 내지 2번째 클래스 값이 모두 일치하는 IP 주소를 검색할 수 있다. 만약 검색되지 않으면 단계(1240)가 이어서 수행될 수 있다.
단계(1240)에서, 데이터 처리 장치는 룩업 IP 테이블에 저장된 IP 주소들 중 대상 IP 주소의 1번째 클래스 값이 모두 일치하는 IP 주소를 검색할 수 있다. 만약 검색되지 않으면, 대상 IP 주소의 국가 정보를 확인할 수 없는 것으로 판단되어, 검색 동작이 종료될 수 있다.
단계(1250)에서, 데이터 처리 장치는 검색된 IP 주소에 대응하는 국가 정보를 대상 IP 주소의 국가 정보로 획득할 수 있다.
다른 실시예에 따르면, 데이터 처리 장치는 룩업 IP 테이블에 저장된 IP 주소들에서, 대상 IP 주소의 1 내지 4번째 클래스 값이 모두 일치하는 제1 IP 주소, 대상 IP 주소의 1 내지 3번째 클래스 값이 일치하는 제2 IP 주소, 대상 IP 주소의 1 내지 2번째 클래스 값이 일치하는 제3 IP 주소 및 대상 IP 주소의 1번째 클래스 값이 일치하는 제4 IP 주소를 한번에 검색할 수 있다. 그리고, 데이터 처리 장치는 제1 IP 주소가 검색되면 제1 IP 주소에 대응하는 국가 정보를 대상 IP 주소의 국가 정보로 획득할 수 있다. 또한, 데이터 처리 장치는 제1 IP 주소가 검색되지 않고, 제2 IP 주소가 검색되면, 제2 IP 주소에 대응하는 국가 정보를 대상 IP 주소의 국가 정보로 획득할 수 있다. 또한, 데이터 처리 장치는 제1 IP 주소, 제2 IP 주소가 검색되지 않고, 제3 IP 주소가 검색되면, 제3 IP 주소에 대응하는 국가 정보를 대상 IP 주소의 국가 정보로 획득할 수 있다. 또한, 데이터 처리 장치는 제1 IP 주소, 제2 IP 주소 및 제3 IP 주소가 검색되지 않고, 제4 IP 주소가 검색되면, 제4 IP 주소에 대응하는 국가 정보를 대상 IP 주소의 국가 정보로 획득할 수 있다.
이처럼, 룩업 IP 테이블에 저장된 IP 주소들에서 제1 IP 주소, 제2 IP 주소, 제3 IP 주소 및 제4 IP 주소를 한번에 검색함으로써, 원본 데이터(즉, 룩업 IP 테이블)에 대한 한번의 읽기만으로도 대상 IP 주소의 국가 정보를 획득할 수 있어, 데이터 처리 장치의 처리 속도를 향상시키고 성능을 높일 수 있다.
도 13을 참조하면, 일실시예에 따른 검색 동작의 예시가 도시된다. 예를 들어, 대상 IP 주소는 검색을 위한 최대 4개의 확장 IP 주소들로 변환될 수 있다. 예를 들어, 먼저 대상 IP 주소의 1 내지 4번째 클래스 값이 그대로 유지되는 D 클래스 확장 IP 주소로 검색이 수행될 수 있다. 룩업 IP 테이블에서 D 클래스 확장 IP 주소와 일치하는 IP 주소가 검색되지 않으면, 대상 IP 주소의 1 내지 3번째 클래스 값이 유지되고, 4번째 클래스 값이 0으로 치환되는 C 클래스 확장 IP 주소로 검색이 수행될 수 있다. 룩업 IP 테이블에서 C 클래스 확장 IP 주소와 일치하는 IP 주소가 검색되지 않으면, 대상 IP 주소의 1 내지 2번째 클래스 값이 유지되고, 3, 4번째 클래스 값이 0으로 치환되는 B 클래스 확장 IP 주소로 검색이 수행될 수 있다. 룩업 IP 테이블에서 B 클래스 확장 IP 주소와 일치하는 IP 주소가 검색되지 않으면, 대상 IP 주소의 1번째 클래스 값이 유지되고, 2 내지 4번째 클래스 값이 0으로 치환되는 A 클래스 확장 IP 주소로 검색이 수행될 수 있다.
도 13의 예시에서는, C 클래스 확장 IP 주소와 일치하는 IP 주소가 룩업 IP 테이블에서 검색되었고, 검색된 IP 주소에 매핑된 국가 정보가 "KR"이므로, 대상 IP 주소의 국가 정보가 "KR"로 결정될 수 있다.
도 14를 참조하면, 일실시예에 따른 검색 동작의 다른 예시들도 도시된다.
도 15를 참조하면, 일실시예에 따른 빅 데이터를 대상으로 검색 동작이 수행되는 예시가 도시된다. 대용량 데이터에 해당하는 빅 데이터에 대해서도 상술된 방식으로 획득한 룩업 IP 테이블과 검색 방식을 이용하면, 국가 정보를 빠르게 검색할 수 있어, 국가에 대한 분석을 효율적으로 수행할 수 있다.
도 16은 일실시예에 따른 데이터 처리 방법을 나타낸 도면이다.
도 16을 참조하면, 일실시예에 따른 데이터 처리 장치에 구비된 프로세서에서 수행되는 데이터 처리 방법이 도시된다.
단계(1610)에서, 데이터 처리 장치는 동일한 국가 정보에 대응하는 IP 주소 범위 내 복수의 개별 IP 주소들 중에서 적어도 둘을 클래스 단위로 그룹핑한다.
데이터 처리 장치는 복수의 개별 IP 주소들 중 4번째 클래스에서 상이한 값을 갖는 개별 IP 주소들의 개수가 미리 정해진 제1 조건을 만족하면, 제1 조건을 만족하는 개별 IP 주소들을 하나의 1차 그룹 IP 주소로 그룹핑할 수 있다. 이 때, 제1 조건은 4번째 클래스에서만 상이한 값을 갖는 개별 IP 주소들의 최대 개수일 수 있다. 데이터 처리 장치는 제1 조건을 만족하는 개별 IP 주소들을 4번째 클래스에서 미리 정해진 값을 갖는 하나의 1차 그룹 IP 주소로 그룹핑할 수 있다. 1차 그룹 IP 주소의 1 내지 3번째 클래스는 제1 조건을 만족하는 개별 IP 주소들에서 공통된 클래스 값을 가질 수 있다.
그리고, 데이터 처리 장치는 1차 그룹 IP 주소들 중 3번째 클래스에서 상이한 값을 갖는 1차 그룹 IP 주소들의 개수가 미리 정해진 제2 조건을 만족하면, 제2 조건을 만족하는 1차 그룹 IP 주소들을 하나의 2차 그룹 IP 주소로 그룹핑할 수 있다. 이 때, 제2 조건은 3번째 클래스에서만 상이한 값을 갖는 1차 그룹 IP 주소들의 최대 개수일 수 있다. 데이터 처리 장치는 제2 조건을 만족하는 1차 그룹 IP 주소들을 3번째 클래스에서 미리 정해진 값을 갖는 하나의 2차 그룹 IP 주소로 그룹핑할 수 있다. 2차 그룹 IP 주소의 1 내지 2번째 클래스는 제2 조건을 만족하는 개별 IP 주소들에서 공통된 클래스 값을 가질 수 있다.
그리고, 데이터 처리 장치는 2차 그룹 IP 주소들 중 2번째 클래스에서 상이한 값을 갖는 2차 그룹 IP 주소들의 개수가 미리 정해진 제3 조건을 만족하면, 제3 조건을 만족하는 2차 그룹 IP 주소들을 하나의 3차 그룹 IP 주소로 그룹핑할 수 있다. 이 때, 제3 조건은 2번째 클래스에서만 상이한 값을 갖는 2차 그룹 IP 주소들의 최대 개수일 수 있다. 데이터 처리 장치는 제3 조건을 만족하는 2차 그룹 IP 주소들을 2번째 클래스에서 미리 정해진 값을 갖는 하나의 3차 그룹 IP 주소로 그룹핑할 수 있다. 3차 그룹 IP 주소의 1번째 클래스는 제3 조건을 만족하는 개별 IP 주소들에서 공통된 클래스 값을 가질 수 있다.
그리고, 데이터 처리 장치는 IP 주소 범위 내에서 1차 그룹 IP 주소 내지 3차 그룹 IP 주소 중 어느 하나로 그룹핑되지 않은 나머지 IP 주소들 중 일부 클래스 값이 공통되는 적어도 둘을 하나의 올림 IP 주소로 그룹핑할 수 있다. 데이터 처리 장치는 동일한 국가 정보에 대응하는 IP 주소 범위의 마지막 개별 IP 주소에서 IP 주소 범위의 중간 개별 IP 주소까지를 하나의 올림 IP 주소로 그룹핑할 수 있다.
예를 들어, 데이터 처리 장치는 마지막 개별 IP 주소의 2 내지 4번째 클래스 값을 미리 정해진 값으로 치환하고, 치환된 마지막 개별 IP 주소와 일치하는 그룹핑된 IP 주소 또는 나머지 IP 주소가 존재하는지 여부를 확인하고, 확인되지 않으면 마지막 개별 IP 주소의 3 내지 4번째 클래스 값을 미리 정해진 값으로 치환하고, 치환된 마지막 개별 IP 주소와 일치하는 그룹핑된 IP 주소 또는 나머지 IP 주소가 존재하는지 여부를 확인하고, 확인되지 않으면 마지막 개별 IP 주소의 4번째 클래스 값을 미리 정해진 값으로 치환하고, 치환된 마지막 개별 IP 주소와 일치하는 그룹핑된 IP 주소 또는 나머지 IP 주소가 존재하는지 여부를 확인하며, 확인되면 마지막 개별 IP 주소로부터 확인된 그룹핑된 IP 주소 또는 나머지 IP 주소까지를 하나의 올림 IP 주소로 그룹핑할 수 있다. 이 때, 올림 IP 주소는 나머지 IP 주소들 중 어느 하나 또는 1차 그룹 IP 주소 내지 3차 그룹 IP 주소 중 어느 하나일 수 있다.
단계(1620)에서, 데이터 처리 장치는 그룹핑된 IP 주소를 룩업 IP 테이블에 저장한다. 데이터 처리 장치는 IP 주소 범위 내에서 1차 그룹 IP 주소 내지 3차 그룹 IP 주소, 올림 IP 주소 중 어느 하나로 그룹핑되지 않은 개별 IP 주소를 추가적으로 룩업 IP 테이블에 저장할 수 있다.
단계(1630)에서, 데이터 처리 장치는 룩업 IP 테이블을 이용하여, 검색하고자 하는 대상 IP 주소의 국가 정보를 획득할 수 있다. 데이터 처리 장치는 룩업 IP 테이블에 저장된 IP 주소들 중 대상 IP 주소와 일치하는 어느 하나를 클래스 단위로 검색하여, 대상 IP 주소의 국가 정보를 획득할 수 있다.
예를 들어, 데이터 처리 장치는 룩업 IP 테이블에 저장된 IP 주소들 중 대상 IP 주소의 1 내지 4번째 클래스 값이 모두 일치하는 어느 하나를 검색하고, 검색되지 않으면 룩업 IP 테이블에 저장된 IP 주소들 중 대상 IP 주소의 1 내지 3번째 클래스 값이 일치하는 어느 하나를 검색하고, 검색되지 않으면 룩업 IP 테이블에 저장된 IP 주소들 중 대상 IP 주소의 1 내지 2번째 클래스 값이 일치하는 어느 하나를 검색하고, 검색되지 않으면 룩업 IP 테이블에 저장된 IP 주소들 중 대상 IP 주소의 1번째 클래스 값이 일치하는 어느 하나를 검색하고, 검색되면 검색된 IP 주소에 대응하는 국가 정보를 대상 IP 주소의 국가 정보로 획득할 수 있다.
도 16에 도시된 각 단계들에는 도 1 내지 도 16을 통하여 전술한 사항들이 그대로 적용되므로, 보다 상세한 설명은 생략한다.
도 17은 일실시예에 따른 데이터 처리 장치를 나타낸 도면이다.
도 17을 참조하면, 일실시예에 따른 데이터 처리 장치(1700)는 메모리(1710) 및 프로세서(1720)를 포함한다. 메모리(1710) 및 프로세서(1720)는 버스(bus)(1730)를 통하여 서로 통신할 수 있다.
메모리(1710)는 컴퓨터에서 읽을 수 있는 명령어를 포함할 수 있다. 프로세서(1720)는 메모리(1710)에 저장된 명령어가 프로세서(1720)에서 실행됨에 따라 앞서 언급된 동작들을 수행할 수 있다. 메모리(1710)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(1720)는 명령어들, 혹은 프로그램들을 실행하거나, 데이터 처리 장치(1700)를 제어하는 장치로서, 상술된 동작을 처리할 수 있으므로 보다 상세한 설명은 생략한다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
실시예들에서 설명된 구성요소들은 하나 이상의 DSP (Digital Signal Processor), 프로세서 (Processor), 컨트롤러 (Controller), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array)와 같은 프로그래머블 논리 소자 (Programmable Logic Element), 다른 전자 기기들 및 이것들의 조합 중 하나 이상을 포함하는 하드웨어 구성 요소들(hardware components)에 의해 구현될 수 있다. 실시예들에서 설명된 기능들(functions) 또는 프로세스들(processes) 중 적어도 일부는 소프트웨어(software)에 의해 구현될 수 있고, 해당 소프트웨어는 기록 매체(recording medium)에 기록될 수 있다. 실시예들에서 설명된 구성요소들, 기능들 및 프로세스들은 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
100: 데이터 처리 시스템
110: 데이터 처리 장치
120: 데이터베이스
110: 데이터 처리 장치
120: 데이터베이스
Claims (26)
- 동일한 국가 정보에 대응하는 IP 주소 범위 내 복수의 개별 IP 주소들 중에서 적어도 둘을 클래스 단위로 그룹핑하는 단계;
상기 그룹핑된 IP 주소를 룩업 IP 테이블에 저장하는 단계; 및
상기 룩업 IP 테이블을 이용하여, 검색하고자 하는 대상 IP 주소의 국가 정보를 획득하는 단계
를 포함하고,
상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는
상기 복수의 개별 IP 주소들 중 4번째 클래스에서 상이한 값을 갖는 개별 IP 주소들의 개수가 미리 정해진 제1 조건을 만족하면, 상기 제1 조건을 만족하는 개별 IP 주소들을 하나의 1차 그룹 IP 주소로 그룹핑하고,
1차 그룹 IP 주소들 중 3번째 클래스에서 상이한 값을 갖는 1차 그룹 IP 주소들의 개수가 미리 정해진 제2 조건을 만족하면, 상기 제2 조건을 만족하는 1차 그룹 IP 주소들을 하나의 2차 그룹 IP 주소로 그룹핑하고,
2차 그룹 IP 주소들 중 2번째 클래스에서 상이한 값을 갖는 2차 그룹 IP 주소들의 개수가 미리 정해진 제3 조건을 만족하면, 상기 제3 조건을 만족하는 2차 그룹 IP 주소들을 하나의 3차 그룹 IP 주소로 그룹핑하고,
상기 대상 IP 주소의 국가 정보를 획득하는 단계는
상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1 내지 4번째 클래스 값이 모두 일치하는 어느 하나를 검색하고,
검색되지 않으면, 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1 내지 3번째 클래스 값이 일치하는 어느 하나를 검색하고,
검색되지 않으면, 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1 내지 2번째 클래스 값이 일치하는 어느 하나를 검색하고,
검색되지 않으면, 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1번째 클래스 값이 일치하는 어느 하나를 검색하고,
검색되면, 검색된 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득하는
데이터 처리 방법.
- 삭제
- 제1항에 있어서,
상기 제1 조건은
상기 4번째 클래스에서만 상이한 값을 갖는 개별 IP 주소들의 최대 개수인,
데이터 처리 방법.
- 제1항에 있어서,
상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는
상기 제1 조건을 만족하는 개별 IP 주소들을 상기 4번째 클래스에서 미리 정해진 값을 갖는 상기 하나의 1차 그룹 IP 주소로 그룹핑하는,
데이터 처리 방법.
- 제1항에 있어서,
상기 1차 그룹 IP 주소의 1 내지 3번째 클래스는
상기 제1 조건을 만족하는 개별 IP 주소들에서 공통된 클래스 값을 갖는,
데이터 처리 방법.
- 삭제
- 제1항에 있어서,
상기 제2 조건은
상기 3번째 클래스에서만 상이한 값을 갖는 1차 그룹 IP 주소들의 최대 개수인,
데이터 처리 방법.
- 제1항에 있어서,
상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는
상기 제2 조건을 만족하는 1차 그룹 IP 주소들을 상기 3번째 클래스에서 미리 정해진 값을 갖는 상기 하나의 2차 그룹 IP 주소로 그룹핑하는,
데이터 처리 방법.
- 제1항에 있어서,
상기 2차 그룹 IP 주소의 1 내지 2번째 클래스는
상기 제2 조건을 만족하는 개별 IP 주소들에서 공통된 클래스 값을 갖는,
데이터 처리 방법.
- 삭제
- 제1항에 있어서,
상기 제3 조건은
상기 2번째 클래스에서만 상이한 값을 갖는 2차 그룹 IP 주소들의 최대 개수인,
데이터 처리 방법.
- 제1항에 있어서,
상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는
상기 제3 조건을 만족하는 2차 그룹 IP 주소들을 상기 2번째 클래스에서 미리 정해진 값을 갖는 상기 하나의 3차 그룹 IP 주소로 그룹핑하는,
데이터 처리 방법.
- 제1항에 있어서,
상기 3차 그룹 IP 주소의 1번째 클래스는
상기 제3 조건을 만족하는 개별 IP 주소들에서 공통된 클래스 값을 갖는,
데이터 처리 방법.
- 제1항에 있어서,
상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는
상기 IP 주소 범위 내에서 상기 1차 그룹 IP 주소 내지 상기 3차 그룹 IP 주소 중 어느 하나로 그룹핑되지 않은 나머지 IP 주소들 중 적어도 둘을 하나의 올림 IP 주소로 그룹핑하는,
데이터 처리 방법.
- 제14항에 있어서,
상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는
상기 동일한 국가 정보에 대응하는 상기 IP 주소 범위의 마지막 개별 IP 주소에서 상기 IP 주소 범위의 중간 개별 IP 주소까지를 하나의 올림 IP 주소로 그룹핑하는,
데이터 처리 방법.
- 제15항에 있어서,
상기 복수의 개별 IP 주소들 중에서 적어도 둘을 그룹핑하는 단계는
상기 마지막 개별 IP 주소의 2 내지 4번째 클래스 값을 미리 정해진 값으로 치환하고, 상기 치환된 마지막 개별 IP 주소와 일치하는 그룹핑된 IP 주소 또는 나머지 IP 주소가 존재하는지 여부를 확인하고,
확인되지 않으면, 상기 마지막 개별 IP 주소의 3 내지 4번째 클래스 값을 미리 정해진 값으로 치환하고, 상기 치환된 마지막 개별 IP 주소와 일치하는 그룹핑된 IP 주소 또는 나머지 IP 주소가 존재하는지 여부를 확인하고,
확인되지 않으면, 상기 마지막 개별 IP 주소의 4번째 클래스 값을 미리 정해진 값으로 치환하고, 상기 치환된 마지막 개별 IP 주소와 일치하는 그룹핑된 IP 주소 또는 나머지 IP 주소가 존재하는지 여부를 확인하며,
확인되면, 상기 마지막 개별 IP 주소로부터 상기 확인된 그룹핑된 IP 주소 또는 나머지 IP 주소까지를 하나의 올림 IP 주소로 그룹핑하는,
데이터 처리 방법.
- 제14항에 있어서,
상기 올림 IP 주소는
상기 나머지 IP 주소들 중 어느 하나 또는 상기 1차 그룹 IP 주소 내지 상기 3차 그룹 IP 주소 중 어느 하나인,
데이터 처리 방법.
- 제14항에 있어서,
상기 룩업 IP 테이블에 저장하는 단계는
상기 IP 주소 범위 내에서 상기 1차 그룹 IP 주소 내지 상기 3차 그룹 IP 주소, 올림 IP 주소 중 어느 하나로 그룹핑되지 않은 개별 IP 주소를 추가적으로 상기 룩업 IP 테이블에 저장하는,
데이터 처리 방법.
- 삭제
- 삭제
- 삭제
- 제1항에 있어서,
상기 대상 IP 주소의 국가 정보를 획득하는 단계는
상기 룩업 IP 테이블에 저장된 IP 주소들에서, 상기 대상 IP 주소의 1 내지 4번째 클래스 값이 모두 일치하는 제1 IP 주소, 상기 대상 IP 주소의 1 내지 3번째 클래스 값이 일치하는 제2 IP 주소, 상기 대상 IP 주소의 1 내지 2번째 클래스 값이 일치하는 제3 IP 주소 및 상기 대상 IP 주소의 1번째 클래스 값이 일치하는 제4 IP 주소를 검색하고,
상기 제1 IP 주소가 검색되면, 상기 제1 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득하고,
상기 제1 IP 주소가 검색되지 않고, 상기 제2 IP 주소가 검색되면, 상기 제2 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득하고,
상기 제1 IP 주소, 상기 제2 IP 주소가 검색되지 않고, 상기 제3 IP 주소가 검색되면, 상기 제3 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득하고,
상기 제1 IP 주소, 상기 제2 IP 주소 및 상기 제3 IP 주소가 검색되지 않고, 상기 제4 IP 주소가 검색되면, 상기 제4 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득하는,
데이터 처리 방법.
- 제1항에 있어서,
동일한 국가 정보에 각각 대응하는 복수의 IP 주소 범위들 중 어느 하나에 속하지 않는 개별 IP 주소에 미리 정해진 정보를 매핑시키는 단계
를 더 포함하는
데이터 처리 방법.
- 제1항에 있어서,
상기 IP 주소 범위 내 복수의 개별 IP 주소들은
상기 IP 주소 범위의 시작 IP 주소로부터 끝 IP 주소까지 클래스 단위로 확장되어 결정되는,
데이터 처리 방법.
- 제24항에 있어서,
상기 IP 주소 범위 내 복수의 개별 IP 주소들은
상기 IP 주소 범위의 시작 IP 주소부터 4번째 클래스 값이 순차적으로 증가하도록 확장되고, 상기 4번째 클래스 값이 가장 큰 숫자에 도달하면 3번째 클래스 값이 순차적으로 증가하도록 확장되고, 상기 3번째 클래스 값이 가장 큰 숫자에 도달하면 2번째 클래스 값이 순차적으로 증가하도록 확장되고, 상기 2번째 클래스 값이 가장 큰 숫자에 도달하면 1번째 클래스 값이 순차적으로 증가하도록 확장되되, 상기 IP 주소 범위의 끝 IP 주소를 넘지 않는 선에서 확장됨으로써, 결정되는,
데이터 처리 방법.
- 프로세서; 및
상기 프로세서에 의해 실행 가능한 적어도 하나의 명령어를 포함하는 메모리
를 포함하고,
상기 적어도 하나의 명령어가 상기 프로세서에서 실행되면, 상기 프로세서는 동일한 국가 정보에 대응하는 IP 주소 범위 내 복수의 개별 IP 주소들 중에서 적어도 둘을 클래스 단위로 그룹핑하고, 상기 그룹핑된 IP 주소를 룩업 IP 테이블에 저장하고, 상기 룩업 IP 테이블을 이용하여, 검색하고자 하는 대상 IP 주소의 국가 정보를 획득하고,
상기 프로세서는
상기 복수의 개별 IP 주소들 중 4번째 클래스에서 상이한 값을 갖는 개별 IP 주소들의 개수가 미리 정해진 제1 조건을 만족하면 상기 제1 조건을 만족하는 개별 IP 주소들을 하나의 1차 그룹 IP 주소로 그룹핑하고, 1차 그룹 IP 주소들 중 3번째 클래스에서 상이한 값을 갖는 1차 그룹 IP 주소들의 개수가 미리 정해진 제2 조건을 만족하면 상기 제2 조건을 만족하는 1차 그룹 IP 주소들을 하나의 2차 그룹 IP 주소로 그룹핑하고, 2차 그룹 IP 주소들 중 2번째 클래스에서 상이한 값을 갖는 2차 그룹 IP 주소들의 개수가 미리 정해진 제3 조건을 만족하면 상기 제3 조건을 만족하는 2차 그룹 IP 주소들을 하나의 3차 그룹 IP 주소로 그룹핑하고,
상기 프로세서는
상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1 내지 4번째 클래스 값이 모두 일치하는 어느 하나를 검색하고, 검색되지 않으면 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1 내지 3번째 클래스 값이 일치하는 어느 하나를 검색하고, 검색되지 않으면 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1 내지 2번째 클래스 값이 일치하는 어느 하나를 검색하고, 검색되지 않으면 상기 룩업 IP 테이블에 저장된 IP 주소들 중 상기 대상 IP 주소의 1번째 클래스 값이 일치하는 어느 하나를 검색하고, 검색되면 검색된 IP 주소에 대응하는 국가 정보를 상기 대상 IP 주소의 국가 정보로 획득하는,
데이터 처리 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190076259A KR102187938B1 (ko) | 2019-06-26 | 2019-06-26 | Ip 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190076259A KR102187938B1 (ko) | 2019-06-26 | 2019-06-26 | Ip 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200165021A Division KR20210002066A (ko) | 2020-11-30 | 2020-11-30 | Ip 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102187938B1 true KR102187938B1 (ko) | 2020-12-08 |
Family
ID=73779228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190076259A KR102187938B1 (ko) | 2019-06-26 | 2019-06-26 | Ip 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102187938B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100340953B1 (ko) * | 2000-07-05 | 2002-06-20 | 강승민 | 초고속 라우터 및 그 방법 |
KR100473118B1 (ko) * | 2002-12-13 | 2005-03-10 | 한국전자통신연구원 | 백본 라우터를 위한 아이피 패킷 주소 룩업 방법 및 그장치 |
KR20070081288A (ko) * | 2006-02-10 | 2007-08-16 | 에스케이 텔레콤주식회사 | 국가별 차별화된 데이터 로밍 서비스 시스템 및 방법 |
-
2019
- 2019-06-26 KR KR1020190076259A patent/KR102187938B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100340953B1 (ko) * | 2000-07-05 | 2002-06-20 | 강승민 | 초고속 라우터 및 그 방법 |
KR100473118B1 (ko) * | 2002-12-13 | 2005-03-10 | 한국전자통신연구원 | 백본 라우터를 위한 아이피 패킷 주소 룩업 방법 및 그장치 |
KR20070081288A (ko) * | 2006-02-10 | 2007-08-16 | 에스케이 텔레콤주식회사 | 국가별 차별화된 데이터 로밍 서비스 시스템 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7054855B2 (en) | Method and system for performing a pattern match search for text strings | |
EP2772040B1 (en) | Prefix and predictive search in a distributed hash table | |
EP3292481B1 (en) | Method, system and computer program product for performing numeric searches | |
WO2019160128A1 (ja) | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード | |
JP6340668B2 (ja) | ストリーム認識およびフィルタリング | |
WO2016194909A1 (ja) | アクセス分類装置、アクセス分類方法、及びアクセス分類プログラム | |
JP4114600B2 (ja) | 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム | |
CN111680489B (zh) | 目标文本的匹配方法和装置、存储介质及电子设备 | |
US20180121544A1 (en) | Apparatus and method for enhancing regular expression search performance through cost-based optimization technique | |
CN111416880A (zh) | Ip地址的寻址方法及装置,计算机存储介质及电子设备 | |
CN110737663A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
JP6467540B1 (ja) | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード | |
CN109561163B (zh) | 统一资源定位符重写规则的生成方法及装置 | |
CN107577943B (zh) | 基于机器学习的样本预测方法、装置及服务器 | |
CN104253796B (zh) | 域名系统中基于网络地址绑定区层级的快速区识别方法 | |
KR100999408B1 (ko) | 해시트리를 이용한 url 검색방법 | |
CN108365976B (zh) | 网络服务的优化方法及装置 | |
CN107590233B (zh) | 一种文件管理方法及装置 | |
CN105491094A (zh) | 处理http请求的方法及装置 | |
KR102187938B1 (ko) | Ip 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치 | |
CN110069489A (zh) | 一种信息处理方法、装置、设备及计算机可读存储介质 | |
KR20210002066A (ko) | Ip 주소의 국가 정보를 처리하는 데이터 처리 방법 및 장치 | |
CN107807976A (zh) | Ip归属地查询方法和装置 | |
US10212036B2 (en) | Performance testing method, performance testing apparatus performing the same and storage medium storing the same | |
KR102503028B1 (ko) | 블룸필터를 이용한 분산식별자 검색 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |