CN110769079A - 一种检索ip对应地理位置的方法及装置 - Google Patents
一种检索ip对应地理位置的方法及装置 Download PDFInfo
- Publication number
- CN110769079A CN110769079A CN201911047643.0A CN201911047643A CN110769079A CN 110769079 A CN110769079 A CN 110769079A CN 201911047643 A CN201911047643 A CN 201911047643A CN 110769079 A CN110769079 A CN 110769079A
- Authority
- CN
- China
- Prior art keywords
- address
- target
- geographic position
- intermediate element
- information table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- 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/69—Types of network addresses using geographic information, e.g. room number
-
- 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/35—Network arrangements, protocols or services for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function
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检索上述IP地址信息表中对应的地理位置索引;根据上述地理位置索引检索上述地理位置信息表中对应的地理位置信息以确定上述目标IP对应的地理位置,从而减少占用存储空间,提升检索效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种检索IP对应地理位置的方法及装置。
背景技术
随着网络技术的发展,网络攻击越来越频繁,为了统计各种攻击的来源并以此制定相应的防护策略,需要将攻击的IP地址转换为地理位置,并对各地理位置的攻击情况进行统计。
目前,由于IP地址被划分为50多万个地址段(IP开始地址至IP结束地址组成地址段),并且同一地理位置通常会被分配若干地址段,因此,针对某一IP检索对应的地理位置是十分困难的。
可见,需要一种检索IP对应地理位置的方法来解决检索难的问题。
发明内容
有鉴于此,本申请提供一种检索IP对应地理位置的方法,上述方法包括:
基于IP地址库创建IP地址信息表与地理位置信息表;其中,上述IP地址库包括地理位置信息,以及与上述地理位置信息对应的IP地址段;上述地理位置信息表包括上述地理位置信息,以及与上述地理位置信息对应的地理位置索引;上述IP地址信息表包括上述地理位置索引,以及与上述地理位置索引对应的IP地址段;
获取目标IP,并基于上述目标IP检索上述IP地址信息表中对应的地理位置索引;
根据上述地理位置索引检索上述地理位置信息表中对应的地理位置信息以确定上述目标IP对应的地理位置。
本申请还提供一种检索IP对应地理位置的装置,上述装置包括:
创建模块,基于IP地址库创建IP地址信息表与地理位置信息表;其中,上述IP地址库包括地理位置信息,以及与上述地理位置信息对应的IP地址段;上述地理位置信息表包括上述地理位置信息,以及与上述地理位置信息对应的地理位置索引;上述IP地址信息表包括上述地理位置索引,以及与上述地理位置索引对应的IP地址段;
第一检索模块,获取目标IP,并基于上述目标IP检索上述IP地址信息表中对应的地理位置索引;
第二检索模块,根据上述地理位置索引检索上述地理位置信息表中对应的地理位置信息以确定上述目标IP对应的地理位置。
由上述记载的技术方案可知,一方面,由于本方案基于IP地址库创建了IP地址信息表与地理位置信息表;其中,上述地理位置信息表包括地理位置信息,以及与上述地理位置信息对应的地理位置索引,上述IP地址信息表包括上述地理位置索引,以及与上述地理位置索引对应的IP起始地址、IP终止地址,而目前IP地址被划分为50多万个地址段,因此,IP地址信息表的表项数量仅有0.5M条,且每条表项仅存储起始地址、结束地址、索引值三项,大大降低了占用的存储空间;
另一方面,在检索目标IP对应的地理位置时,由于本方案获取目标IP,并基于上述目标IP检索上述IP地址信息表中对应的地理位置索引;然后,根据上述地理位置索引检索上述地理位置信息表中对应的地理位置信息以确定上述目标IP对应的地理位置,因此,避免了在检索目标IP对应的地理位置时,对系统造成额外的开销。
附图说明
图1为本申请提出的一种检索IP对应地理位置的方法的流程图;
图2为本申请示出的一种组网结构图;
图3为本申请示出的一种有序链表生成方法流程图;
图4为本申请示出的一种二分法检索IP地理位置方法流程图;
图5为本申请示出的一种检索IP对应地理位置的装置的结构图。
具体实施方式
下面将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的设备和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。还应当理解,本文中所使用的词语“如果”,取决于语境,可以被解释成为“在……时”或“当……时”或“响应于确定”。
在相关技术领域中,为了检索IP对应地理位置,常用的方法通常是先从数据库或配置文件中读取IP地址库。上述IP地址库中通常包括IP地址段;上述地理位置信息可以是国家、省、市和运营商等信息。然后,以C类IP作为索引,基于上述IP地址库生成哈希表。在确定目标IP对应的地理位置时,将目标IP转化为相应的网络地址(网络号),并与上述各索引上的IP相比较。当确定与上述目标IP相同的索引时,再基于上述索引确定对应的地理位置。
有上述步骤可知,一方面,由于C类IP有16M(2的24次方)个,因此,对应的哈希表将有16M个数据节点,每个数据节点又包括地理位置信息、IP地址等信息,占用的存储空间比较大;
另一方面,由于采用哈希表的方式将可能出现哈希冲突,因此,在基于索引确定对应的地理位置时,还需要利用确证函数或冲突链来解决哈希冲突问题,增加了系统额外的开销。
基于此,本申请提出一种检索IP对应地理位置的方法,可以应用于网络设备,该方法通过为IP地址库中的地理位置分配地理位置索引,并确定目标IP所属IP地址段对应的地理位置索引,从而确定地理位置。
请参见图1,图1为本申请提出的一种检索IP对应地理位置的方法的流程图。如图1所示,该方法包括:
S101,基于IP地址库创建IP地址信息表与地理位置信息表;其中,上述IP地址库包括地理位置信息,以及与上述地理位置信息对应的IP地址段;上述地理位置信息表包括上述地理位置信息,以及与上述地理位置信息对应的地理位置索引;上述IP地址信息表包括上述地理位置索引,以及与上述地理位置索引对应的IP地址段;
S102,获取目标IP,并基于上述目标IP检索上述IP地址信息表中对应的地理位置索引;
S103,根据上述地理位置索引检索上述地理位置信息表中对应的地理位置信息以确定上述目标IP对应的地理位置。
由上述记载的技术方案可知,一方面,由于本方案基于IP地址库创建了IP地址信息表与地理位置信息表;其中,上述地理位置信息表包括地理位置信息,以及与上述地理位置信息对应的地理位置索引,上述IP地址信息表包括上述地理位置索引,以及与上述地理位置索引对应的IP地址段,而目前IP地址被划分为50多万个地址段,因此,IP地址信息表的表项数量仅有0.5M条,且每条表项仅存储起始地址、结束地址、索引值三项,大大降低了占用的存储空间;
另一方面,在检索目标IP对应的地理位置时,由于本方案获取目标IP,并基于上述目标IP检索上述IP地址信息表中对应的地理位置索引;然后,根据上述地理位置索引检索上述地理位置信息表中对应的地理位置信息以确定上述目标IP对应的地理位置,因此,避免了在检索目标IP对应的地理位置时,对系统造成额外的开销。
以下结合具体的实施例对本发明进行说明。在此,需要说明的是,本发明应用于网络设备,但是本实施例中并不对上述网络设备的类型作出限制,并且,执行S101和执行S102、S103的执行主体可以是同一网络设备,也可以是不同的网络设备。本申请不对上述IP地址库中的IP地址段的存储形式进行限制,以下以IP地址段包括IP起始地址、IP终止地址为例进行说明。网络设备执行S101步骤后创建的地理位置信息表,以及IP地址信息表可以供其他网络设备重复使用。例如,该网络设备可以允许其他网络设备对上述地理位置信息表、IP地址信息表进行联网查询,或者将上述地理位置信息表、IP地址信息表拷贝至其他网络设备,供其他设备使用。因此可以避免其他网络设备重复进行创建地理位置信息表、IP地址信息表(有序数组)的工作,提高IP地理位置检索效率。
请参照图2,图2为本申请示出的一种组网结构图。如图2所示,网络设备A可以是服务端。该设备可以创建IP地址信息表以及地理位置信息表,并为其他与其通信连接的网络设备提供检索服务。上述网络设备B可以是需要检索IP对应地理位置的客户端。当网络设备B需要进行检索IP对应地理位置时,可以向网络设备A发送检索请求。上述网络设备A可以响应于上述检索请求,进行IP对应地理位置检索,并将检索结果返回至网络设备B。
第一部分,创建IP地址信息表与地理位置信息表。
执行S101a,基于IP地址库创建地理位置信息表,其中,上述IP地址库包括地理位置信息,以及与上述地理位置信息对应的IP地址段;上述地理位置信息表包括上述地理位置信息,以及与上述地理位置信息对应的地理位置索引;
本步骤中,网络设备A可以先从网络中获取最新的IP地址库,然后通过查询上述IP地址库以获取IP起始地址、IP终止地址、以及对应的地理位置信息。上述网络设备A可以生成与上述地理位置信息对应的地理位置索引,并将上述地理位置索引与上述地理位置信息形成表项存储至地理位置信息表。
在一实施例中,网络设备A首先将IP地址库中的地理位置信息字段取出,并确定上述地理位置信息表中是否包含表项;如果上述地理位置信息表不包含任何表项,则直接将上述地理位置信息插入该表,并生成对应的值为1的地理位置索引;如果上述地理位置信息表已包含如果该表项,则将上述地理位置信息字段逐个与该表中已经存在的地理位置信息字段相比较,如果该字段已在表中,则不再重复插入;否则,将上述地理位置信息字段插入上述地理位置信息表,并将当前最大的索引值加1后作为与该地理位置信息字段对应的地理位置索引。
例如,IP地址库信息如表1所示。以表1中序号为1的表项内容为例进行说明,该表项中IP起始地址为211.66.205.0,结束地址为211.66.205.255,形成的IP地址段为211.66.205.0至211.66.205.255,对应的地理位置信息为中国\北京\北京。也就是说,211.66.205.0至211.66.205.255这一段地址段内的IP地址对应的地理位置为中国\北京\北京。需要说明的是,表1中仅显示了部分数据且示出的序号列是为了便于说明而添加(非必需)。并且,上述IP地址库中的数据可以是无序的;同一地理位置可以被分配若干个地址段,例如,序号4和序号5中的地理位置均为中国\浙江\杭州。
序号 | 起始地址 | 结束地址 | 地理位置信息 |
1 | 211.66.205.0 | 211.66.205.255 | 中国\北京\北京 |
2 | 58.240.52.0 | 58.240.52.11 | 中国\江苏\苏州 |
3 | 58.240.52.12 | 58.240.52.127 | 中国\江苏\南京 |
4 | 11.191.13.0 | 11.191.13.255 | 中国\浙江\杭州 |
5 | 101.37.96.0 | 101.37.255.255 | 中国\浙江\杭州 |
6 | 36.22.0.0 | 36.22.63.255 | 中国\浙江\宁波 |
表1
在创建地理位置信息表时,网络设备A先将表1中序号为1的表项的地理位置信息字段取出,由于当前地理位置信息表为空表(不包含任何表项),因此直接将上述地理位置信息插入上述地理位置信息表,并生成对应的值为1的地理位置索引。此时,上述地理位置信息表如表2所示。
表2
之后,网络设备A继续将表1中序号为2的表项的地理位置信息字段(中国\江苏\苏州)取出,此时,由于上述地理位置信息字段(中国\江苏\苏州)与当前地理位置信息表中已包含了一条表项的地理位置信息字段(中国\北京\北京)不同,因此,将上述地理位置信息字段插入上述地理位置信息表,并将当前最大的索引值加1后作为与该地理位置信息字段对应的地理位置索引,生成如表3所示的地理位置信息表。
索引值 | 地理位置信息 |
1 | 中国\北京\北京 |
2 | 中国\江苏\苏州 |
表3
以此类推,当网络设备A处理完毕序号为4的表项信息后,上述地理位置信息表如表4所示。
索引值 | 地理位置信息 |
1 | 中国\北京\北京 |
2 | 中国\江苏\苏州 |
3 | 中国\江苏\南京 |
4 | 中国\浙江\杭州 |
表4
之后再处理序号为5的表项时,由于该表项的地理位置信息字段与上述地理位置信息表中索引值为4的地理位置信息字段相同,因此,上述地理位置信息字段将不作重复插入。最终,在网络设备A执行完毕6条表项后,上述地理位置信息表如表5所示。
索引值 | 地理位置信息 |
1 | 中国\北京\北京 |
2 | 中国\江苏\苏州 |
3 | 中国\江苏\南京 |
4 | 中国\浙江\杭州 |
5 | 中国\浙江\宁波 |
表5
网络设备A在创建地理位置信息表时,还可以执行S101b,创建IP地址信息表。其中,上述IP地址信息表包括上述地理位置索引,以及与上述地理位置索引对应的IP起始地址、IP终止地址;
本步骤中,网络设备A可以将执行S101a时,获取的IP起始地址、IP终止地址、以及生成的与上述地理位置信息对应的地理位置索引形成表项存储至IP地址信息表。
在一实施例中,上述IP地址信息表可以以链表形式存储;上述IP地址信息链表中的节点可以按照IP起始地址和/或IP终止地址的大小排序。以下以上述IP地址信息链表中的节点按照IP起始地址由小到大排序进行说明。
请参见图3,图3为本申请示出的一种有序链表生成方法流程图。
如图3所示,网络设备A可以先执行S301,将获取的上述IP起始地址、上述IP终止地址、以及生成的与上述地理位置信息对应的地理位置索引形成节点。然后,网络设备A可以执行S302,确定上述IP地址信息链表是否为空,如果上述IP地址信息链表中没有任何节点,则直接插入上述节点;如果上述IP地址信息表中包含若干节点,则可以执行S304,将上述链表尾部的节点的IP起始地址与上述形成的节点中的IP起始地址比较,如果上述链表尾部的节点的IP起始地址小于上述形成的节点中的IP起始地址,则将上述形成的节点插入到上述链表的尾部;如果上述链表尾部的节点的IP起始地址大于上述形成的节点中的IP起始地址,则进一步将上述尾部节点的前一节点的IP起始地址与上述形成的节点中的IP起始地址比较;如果上述尾部节点的前一节点的IP起始地址小于上述形成的节点中的IP起始地址,则将上述形成的节点插入上述尾部节点的前一节点之后,上述尾部节点之前;如果按照上述步骤一直未找到合适的节点插入位置,则将上述形成的节点作为该IP地址信息链表的首节点。
例如,IP地址库信息如表1所示。网络设备A可以先将表1中序号为1的表项的起始地址(211.66.205.0)、结束地址(211.66.205.255)、以及对应的地理位置信息字段(中国\北京\北京)取出,并生成与上述地理位置信息(中国\北京\北京)对应的地理位置索引(索引值为1)。然后,网络设备A可以将上述起始地址、上述结束地址、以及上述地理位置索引形成节点。本实施例中,由于上述IP地址信息链表当前不包含任何节点,因此,可以直接将上述节点插入上述链表,生成如表6所示的IP地址信息表。
起始地址 | 结束地址 | 索引值 |
211.66.205.0 | 211.66.205.255 | 1 |
表6
之后,网络设备A可以将表1中序号为2的表项的起始地址(58.240.52.0)、结束地址(58.240.52.11)、以及对应的地理位置信息字段(中国\江苏\苏州)取出,并生成与上述地理位置信息(中国\江苏\苏州)对应的地理位置索引(索引值为2)。然后,网络设备A可以将上述起始地址、上述结束地址、以及上述地理位置索引形成节点,并确定上述IP地址信息链表中的尾节点(如表6所示只有1个节点)。在确定上述IP地址信息链表中的尾节点后,网络设备A可以执行步骤S304,将上述尾节点的起始地址(211.66.205.0)与上述形成的节点的起始地址(58.240.52.0)比较。本实施例中,由于上述链表中仅有一个节点,且该节点的起始地址大于上述形成的节点的起始地址(211.66.205.0>58.240.52.0),按照上述步骤将找不到合适的节点插入位置,因此,可以将上述形成的节点作为上述链表的首节点。此时,上述IP地址信息链表结构如表7所示。
起始地址 | 结束地址 | 索引值 |
58.240.52.0 | 58.240.52.11 | 2 |
211.66.205.0 | 211.66.205.255 | 1 |
表7
之后,网络设备A将表1中序号为3的表项的起始地址(58.240.52.12)、结束地址(58.240.52.127)、以及对应的地理位置信息字段(中国\江苏\南京)取出,并生成与上述地理位置信息对应的地理位置索引(索引值为3)。网络设备A可以将上述起始地址、上述结束地址、以及上述地理位置索引形成节点,并确定上述IP地址信息链表中的尾节点。在确定上述IP地址信息链表中的尾节点后,网络设备A可以执行步骤S304,由于上述尾节点的IP起始地址大于上述形成的节点的IP起始地址(211.66.205.0>58.240.52.12),并且上述尾节点的前一节点的IP起始地址小于上述形成的节点的IP起始地址(58.240.52.0<58.240.52.12),因此,将上述形成的节点插入到上述尾节点之前,上述尾节点的前一节点之后。此时,上述IP地址信息链表结构如表8所示。
表8
以此类推,将上述IP地址库中的上述信息处理完毕后,可以生成如表9所示的IP地址信息链表。
起始地址 | 结束地址 | 索引值 |
11.191.13.0 | 11.191.13.255 | 4 |
36.22.0.0 | 36.22.63.255 | 5 |
58.240.52.0 | 58.240.52.11 | 2 |
58.240.52.12 | 58.240.52.127 | 3 |
101.37.96.0 | 101.37.255.255 | 4 |
211.66.205.0 | 211.66.205.255 | 1 |
表9
在一实施例中,上述IP地址信息链表可以以有序数组的形式存储;上述有序数组的元素可以是上述IP地址信息链表中的节点;上述有序数组的元素排序与上述IP地址信息链表终端节点排序可以相同。
例如,网络设备A可以顺序遍历表9所示的IP地址信息链表中的每个节点,并将每个节点的IP起始地址、IP结束地址和索引值(地理位置索引)写入有序数组中。有序数组结构如表10所示。
表10
由上述方案可知,上述网络设备A中仅存储了0.5M个有序数组元素(节点),在数量上远小于16M,并且每个元素(节点)存储的数据量较小,从而有效的降低了占用的存储空间。
第二部分,检索IP对应地理位置。
执行S102-S103,获取目标IP,并基于上述目标IP检索上述IP地址信息表中对应的地理位置索引;根据上述地理位置索引检索上述地理位置信息表中对应的地理位置信息以确定上述目标IP对应的地理位置。
本步骤中,如图2所示的网络设备B可以先获取要检索对应地理位置的目标IP,并向网络设备A发起检索请求。例如,网络设备B可以是IPS设备,当网络设备B发现有病毒攻击行为时,可以将该病毒攻击行为的源IP作为目标IP向网络设备A发起检索对应地理位置的请求。
网络设备A在接收到网络设备B发送的检索请求后,可以获取该请求中携带的目标IP,并基于该目标IP检索上述IP地址信息表中对应的地理位置索引。
在一实施例中,网络设备A可以遍历已创建的IP地址信息表中的各表项,并将上述目标IP与上述表项的IP起始地址、IP终止地址比较;如果上述目标IP大于上述IP起始地址,小于IP终止地址,则将上述表项中的地理位置索引返回。然后,网络设备A可以根据上述地理位置索引查询已创建的地理位置信息表,确定对应的地理位置(上述地理位置是上述目标IP对应的地理位置)。在获取上述地理位置后,网络设备A可以将上述地理位置信息打包为响应报文返回至网络设备B以使网络设备B完成检索IP对应地理位置的请求。
在一实施例中,上述IP地址信息表可以以有序数组的形式存储,上述有序数组中的元素可以按照IP起始地址由小到大的顺序排列。网络设备A在检索上述目标IP对应的地理位置时,可以采用特殊的二分法。
请参见图4,图4为本申请示出的一种二分法检索IP地理位置方法流程图。
具体实现时,如图4所示,网络设备A可以先执行S401,以上述有序数组的首个元素作为开始元素,末尾元素作为结束元素获取中间元素。
在获取到中间元素后,网络设备A可以执行S402,将上述目标IP与上述中间元素的IP起始地址进行比较。
如果上述目标IP大于上述中间元素的IP起始地址,则执行S403,进一步将上述目标IP与上述中间元素的IP终止地址比较;如果上述目标IP小于等于上述中间元素的IP终止地址,则上述中间元素中的地理位置索引为与上述目标IP对应的地理位置索引。
如果上述目标IP小于上述中间元素的IP起始地址,则执行S404,以上述中间元素的前一个元素作为结束元素获取中间元素,并重复上述目标IP与中间元素的IP起始地址比较之后的步骤,直到检索到与上述目标IP对应的地理位置索引。
如果上述目标IP大于上述中间元素的IP终止地址,则执行S405,以上述中间元素的后一个元素作为开始元素获取中间元素,并重复上述目标IP与中间元素的IP起始地址比较之后步骤,直到检索到与上述目标IP对应的地理位置索引。
例如,网络设备A中已创建如表10所示的IP地址信息表(有序数组),以及如表5所示的地理位置信息表。上述目标IP为58.240.52.125。网络设备A接收到网络设备B发送的检索请求后,可以执行S401,以元素1(首个元素)作为开始元素,元素6(末尾元素)作为结束元素获取中间元素,本实施例中,由于因此,本实施例中获取的上述中间元素为元素3。
然后,网络设备A可以执行S402,将上述目标IP(58.240.52.125)与上述中间元素3的IP起始地址(58.240.52.0)比较。由于本实施例中,上述目标IP大于上述中间元素3的IP起始地址(58.240.52.125>58.240.52.0),因此,网络设备A将执行S403,进一步将上述目标IP(58.240.52.125)与上述中间元素3的IP终止地址(58.240.52.11)比较。由于本实施例中,上述目标IP大于上述中间元素3的IP终止地址(58.240.52.125>58.240.52.11),因此,网络设备A可以执行S405,以上述中间元素3的后一个元素4作为开始元素,上一次执行获取中间元素操作时的结束元素(元素6)作为结束元素获取中间元素。由于因此,本实施例中获取的上述中间元素为元素5。接下来网络设备A可以重复步骤S403之后的步骤。此时,由于上述目标IP小于上述中间元素5的IP起始地址(58.240.52.125<101.37.96.0),因此,网络设备A可以执行S404,以上述中间元素5的前一个元素4作为结束元素,上一次获取中间元素时的开始元素(元素4)作为开始元素获取中间元素。由于因此,本实施例中获取的上述中间元素为元素4。接下来网络设备A可以再次重复步骤S403。此时,由于上述目标IP大于上述中间元素4的IP起始地址,并且小于上述中间元素4的IP终止地址(58.240.52.12<58.240.52.125<58.240.52.127),因此,本实施例中,元素4对应的索引值3为上述目标IP对应的地理位置索引。
在确定了上述目标IP对应的地理位置索引后,网络设备A可以执行S103,根据上述地理位置索引查询地理位置信息表(本实施例中,为表5),并由此可以确定上述目标IP对应的地理位置为中国\江苏\南京。之后,网络设备A可以将上述地理位置信息打包为响应报文返回至网络设备B以此完成网络设备B的检索请求。
由上述方案可知,在检索目标IP对应的地理位置时,由于本方案获取目标IP,并基于上述目标IP检索上述IP地址信息表中对应的地理位置索引;根据上述地理位置索引检索上述地理位置信息表中对应的地理位置信息以确定上述目标IP对应的地理位置查询是根据IP起始地址与IP终止地址,因此,避免了在检索目标IP对应的地理位置时,对系统造成额外的开销。
另一方面,采用特殊的二分法检索IP对应地理位置可以有效的提升检索效率。
相应于上面的方法实施例,本申请还提供一种检索IP对应地理位置的装置,应用于网络设备。
请参照图5,图5为本申请示出的一种检索IP对应地理位置的装置的结构图。
如图5所示,上述装置500包括:
创建模块510,基于IP地址库创建IP地址信息表与地理位置信息表;其中,上述IP地址库包括地理位置信息,以及与上述地理位置信息对应的IP地址段;上述地理位置信息表包括上述地理位置信息,以及与上述地理位置信息对应的地理位置索引;上述IP地址信息表包括上述地理位置索引,以及与上述地理位置索引对应的IP地址段;
第一检索模块520,获取目标IP,并基于上述目标IP检索上述IP地址信息表中对应的地理位置索引;
第二检索模块530,根据上述地理位置索引检索上述地理位置信息表中对应的地理位置信息以确定上述目标IP对应的地理位置。
在示出的一实施例中,上述创建模块510还包括:
获取模块,获取IP地址库中的IP地址段、以及对应的地理位置信息;
第一存储模块,基于上述地理位置信息生成与上述IP地址库中的地理位置信息对应的地理位置索引,并将上述地理位置索引与上述地理位置信息形成表项存储至地理位置信息表;
第二存储模块,将上述IP地址段,以及上述地理位置索引形成表项存储至IP地址信息表。
在示出的一实施例中,上述IP地址段包括IP起始地址、以及IP终止地址;上述IP地址信息表以链表形式存储;上述IP地址信息链表中的节点按照IP起始地址和/或IP终止地址的大小排序。
在示出的一实施例中,上述装置500还包括:
第三存储模块,将上述IP地址信息链表以有序数组的形式存储;上述有序数组的元素为上述IP地址信息链表中的节点;上述有序数组的元素排序与上述IP地址信息链表终端节点排序相同。
在示出的一实施例中,上述有序数组中的元素按照IP起始地址由小到大的顺序排列;上述第一检索模块520还包括:
以上述有序数组的首个元素作为开始元素,末尾元素作为结束元素获取中间元素;
将上述目标IP于上述中间元素的IP起始地址比较;
如果上述目标IP大于上述中间元素的IP起始地址,则进一步将上述目标IP与上述中间元素的IP终止地址比较;
如果上述目标IP小于等于上述中间元素的IP终止地址,则上述中间元素中的地理位置索引为与上述目标IP对应的地理位置索引。
在示出的一实施例中,上述第一检索模块520还包括:
如果上述目标IP小于上述中间元素的IP起始地址,则以上述中间元素的前一个元素作为结束元素获取中间元素,并重复上述目标IP与中间元素的IP起始地址比较之后的步骤,直到检索到与上述目标IP对应的地理位置索引;
如果上述目标IP大于上述中间元素的IP终止地址,则以上述中间元素的后一个元素作为开始元素获取中间元素,并重复上述目标IP与中间元素的IP起始地址比较之后步骤,直到检索到与上述目标IP对应的地理位置索引。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。上述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上上述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上上述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种检索IP对应地理位置的方法,其特征在于,所述方法包括:
基于IP地址库创建IP地址信息表与地理位置信息表;其中,所述IP地址库包括地理位置信息,以及与所述地理位置信息对应的IP地址段;所述地理位置信息表包括所述地理位置信息,以及与所述地理位置信息对应的地理位置索引;所述IP地址信息表包括所述地理位置索引,以及与所述地理位置索引对应的IP地址段;
获取目标IP,并基于所述目标IP检索所述IP地址信息表中对应的地理位置索引;
根据所述地理位置索引检索所述地理位置信息表中对应的地理位置信息以确定所述目标IP对应的地理位置。
2.根据权利要求1所述的方法,其特征在于,所述基于IP地址库创建IP地址信息表与地理位置信息表,包括:
获取IP地址库中的IP地址段、以及对应的地理位置信息;
基于所述地理位置信息生成与所述IP地址库中的地理位置信息对应的地理位置索引,并将所述地理位置索引与所述地理位置信息形成表项存储至地理位置信息表;
将所述IP地址段,以及所述地理位置索引形成表项存储至IP地址信息表。
3.根据权利要求2所述的方法,其特征在于,所述IP地址段包括IP起始地址、以及IP终止地址;所述IP地址信息表以链表形式存储;所述IP地址信息链表中的节点按照IP起始地址和/或IP终止地址的大小排序。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将所述IP地址信息链表以有序数组的形式存储;所述有序数组的元素为所述IP地址信息链表中的节点;所述有序数组的元素排序与所述IP地址信息链表终端节点排序相同。
5.根据权利要求4所述的方法,其特征在于,所述有序数组中的元素按照IP起始地址由小到大的顺序排列;所述基于所述目标IP检索所述IP地址信息表中对应的地理位置索引,包括:
以所述有序数组的首个元素作为开始元素,末尾元素作为结束元素获取中间元素;
将所述目标IP于所述中间元素的IP起始地址比较;
如果所述目标IP大于所述中间元素的IP起始地址,则进一步将所述目标IP与所述中间元素的IP终止地址比较;
如果所述目标IP小于等于所述中间元素的IP终止地址,则所述中间元素中的地理位置索引为与所述目标IP对应的地理位置索引。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
如果所述目标IP小于所述中间元素的IP起始地址,则以所述中间元素的前一个元素作为结束元素获取中间元素,并重复所述目标IP与中间元素的IP起始地址比较之后的步骤,直到检索到与所述目标IP对应的地理位置索引;
如果所述目标IP大于所述中间元素的IP终止地址,则以所述中间元素的后一个元素作为开始元素获取中间元素,并重复所述目标IP与中间元素的IP起始地址比较之后步骤,直到检索到与所述目标IP对应的地理位置索引。
7.一种检索IP对应地理位置的装置,其特征在于,所述装置包括:
创建模块,基于IP地址库创建IP地址信息表与地理位置信息表;其中,所述IP地址库包括地理位置信息,以及与所述地理位置信息对应的IP地址段;所述地理位置信息表包括所述地理位置信息,以及与所述地理位置信息对应的地理位置索引;所述IP地址信息表包括所述地理位置索引,以及与所述地理位置索引对应的IP地址段;
第一检索模块,获取目标IP,并基于所述目标IP检索所述IP地址信息表中对应的地理位置索引;
第二检索模块,根据所述地理位置索引检索所述地理位置信息表中对应的地理位置信息以确定所述目标IP对应的地理位置。
8.根据权利要求7所述的装置,其特征在于,所述创建模块还包括:
获取模块,获取IP地址库中的IP地址段、以及对应的地理位置信息;
第一存储模块,基于所述地理位置信息生成与所述IP地址库中的地理位置信息对应的地理位置索引,并将所述地理位置索引与所述地理位置信息形成表项存储至地理位置信息表;
第二存储模块,将所述IP地址段,以及所述地理位置索引形成表项存储至IP地址信息表。
9.根据权利要求8所述的装置,其特征在于,所述IP地址段包括IP起始地址、以及IP终止地址;所述IP地址信息表以链表形式存储;所述IP地址信息链表中的节点按照IP起始地址和/或IP终止地址的大小排序。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第三存储模块,将所述IP地址信息链表以有序数组的形式存储;所述有序数组的元素为所述IP地址信息链表中的节点;所述有序数组的元素排序与所述IP地址信息链表终端节点排序相同。
11.根据权利要求10所述的装置,其特征在于,所述有序数组中的元素按照IP起始地址由小到大的顺序排列;所述第一检索模块还包括:
以所述有序数组的首个元素作为开始元素,末尾元素作为结束元素获取中间元素;
将所述目标IP于所述中间元素的IP起始地址比较;
如果所述目标IP大于所述中间元素的IP起始地址,则进一步将所述目标IP与所述中间元素的IP终止地址比较;
如果所述目标IP小于等于所述中间元素的IP终止地址,则所述中间元素中的地理位置索引为与所述目标IP对应的地理位置索引。
12.根据权利要求11所述的装置,其特征在于,所述第一检索模块还包括:
如果所述目标IP小于所述中间元素的IP起始地址,则以所述中间元素的前一个元素作为结束元素获取中间元素,并重复所述目标IP与中间元素的IP起始地址比较之后的步骤,直到检索到与所述目标IP对应的地理位置索引;
如果所述目标IP大于所述中间元素的IP终止地址,则以所述中间元素的后一个元素作为开始元素获取中间元素,并重复所述目标IP与中间元素的IP起始地址比较之后步骤,直到检索到与所述目标IP对应的地理位置索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911047643.0A CN110769079A (zh) | 2019-10-30 | 2019-10-30 | 一种检索ip对应地理位置的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911047643.0A CN110769079A (zh) | 2019-10-30 | 2019-10-30 | 一种检索ip对应地理位置的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110769079A true CN110769079A (zh) | 2020-02-07 |
Family
ID=69333535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911047643.0A Pending CN110769079A (zh) | 2019-10-30 | 2019-10-30 | 一种检索ip对应地理位置的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110769079A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791310A (zh) * | 2016-04-13 | 2016-07-20 | 汉柏科技有限公司 | 一种网络入侵事件监控方法及装置 |
CN111447292A (zh) * | 2020-02-24 | 2020-07-24 | 北京邮电大学 | 一种IPv6地理位置定位方法、装置、设备及存储介质 |
CN111629081A (zh) * | 2020-05-28 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 互联网协议ip地址数据处理方法、装置及电子设备 |
CN111797180A (zh) * | 2020-05-21 | 2020-10-20 | 网宿科技股份有限公司 | 地理位置信息索引的建立及信息查询方法、电子设备 |
CN111859033A (zh) * | 2020-07-22 | 2020-10-30 | 北京金山云网络技术有限公司 | Ip库查询方法、装置及ip库压缩方法、装置 |
CN112347377A (zh) * | 2020-10-13 | 2021-02-09 | 咪咕视讯科技有限公司 | Ip地址段查找方法与业务调度方法、装置、电子设备 |
CN112732724A (zh) * | 2021-01-21 | 2021-04-30 | 杭州迪普科技股份有限公司 | 资产信息管理方法及装置 |
CN114301874A (zh) * | 2021-11-10 | 2022-04-08 | 北京邮电大学 | 基于IPv4地址地理位置信息的IPv6地址定位方法及电子设备 |
CN114500454A (zh) * | 2021-12-20 | 2022-05-13 | 成都鲁易科技有限公司 | 电子设备地理位置变更的检测方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102984292A (zh) * | 2012-12-03 | 2013-03-20 | 北京锐安科技有限公司 | 一种ip段地址集中查找ip地址的方法 |
CN104539750A (zh) * | 2014-12-30 | 2015-04-22 | 深圳市兰丁科技有限公司 | 一种ip定位方法和装置 |
CN105827530A (zh) * | 2016-03-11 | 2016-08-03 | 中国互联网络信息中心 | 一种兼容ipv4/ipv6的ip二分查找方法及装置 |
CN106375490A (zh) * | 2016-08-29 | 2017-02-01 | 飞思达技术(北京)有限公司 | Ip信息匹配与扩展方法 |
CN106599019A (zh) * | 2016-10-21 | 2017-04-26 | 东莞市大易产业链服务有限公司 | 一种精确高效的ip地址定位方法 |
CN106777163A (zh) * | 2016-12-20 | 2017-05-31 | 携程旅游网络技术(上海)有限公司 | 基于红黑树的ip地址所属地查询方法及系统 |
CN106940708A (zh) * | 2017-01-23 | 2017-07-11 | 北京思特奇信息技术股份有限公司 | 一种基于二分查找法实现ip范围定位的方法及系统 |
CN108777689A (zh) * | 2018-06-08 | 2018-11-09 | 山东超越数控电子股份有限公司 | 一种快速确定ip所对应的地理位置信息的方法 |
-
2019
- 2019-10-30 CN CN201911047643.0A patent/CN110769079A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102984292A (zh) * | 2012-12-03 | 2013-03-20 | 北京锐安科技有限公司 | 一种ip段地址集中查找ip地址的方法 |
CN104539750A (zh) * | 2014-12-30 | 2015-04-22 | 深圳市兰丁科技有限公司 | 一种ip定位方法和装置 |
CN105827530A (zh) * | 2016-03-11 | 2016-08-03 | 中国互联网络信息中心 | 一种兼容ipv4/ipv6的ip二分查找方法及装置 |
CN106375490A (zh) * | 2016-08-29 | 2017-02-01 | 飞思达技术(北京)有限公司 | Ip信息匹配与扩展方法 |
CN106599019A (zh) * | 2016-10-21 | 2017-04-26 | 东莞市大易产业链服务有限公司 | 一种精确高效的ip地址定位方法 |
CN106777163A (zh) * | 2016-12-20 | 2017-05-31 | 携程旅游网络技术(上海)有限公司 | 基于红黑树的ip地址所属地查询方法及系统 |
CN106940708A (zh) * | 2017-01-23 | 2017-07-11 | 北京思特奇信息技术股份有限公司 | 一种基于二分查找法实现ip范围定位的方法及系统 |
CN108777689A (zh) * | 2018-06-08 | 2018-11-09 | 山东超越数控电子股份有限公司 | 一种快速确定ip所对应的地理位置信息的方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791310A (zh) * | 2016-04-13 | 2016-07-20 | 汉柏科技有限公司 | 一种网络入侵事件监控方法及装置 |
CN111447292A (zh) * | 2020-02-24 | 2020-07-24 | 北京邮电大学 | 一种IPv6地理位置定位方法、装置、设备及存储介质 |
CN111447292B (zh) * | 2020-02-24 | 2021-10-01 | 北京邮电大学 | 一种IPv6地理位置定位方法、装置、设备及存储介质 |
CN111797180A (zh) * | 2020-05-21 | 2020-10-20 | 网宿科技股份有限公司 | 地理位置信息索引的建立及信息查询方法、电子设备 |
CN111629081B (zh) * | 2020-05-28 | 2023-07-28 | 腾讯科技(深圳)有限公司 | 互联网协议ip地址数据处理方法、装置及电子设备 |
CN111629081A (zh) * | 2020-05-28 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 互联网协议ip地址数据处理方法、装置及电子设备 |
CN111859033A (zh) * | 2020-07-22 | 2020-10-30 | 北京金山云网络技术有限公司 | Ip库查询方法、装置及ip库压缩方法、装置 |
CN111859033B (zh) * | 2020-07-22 | 2023-10-27 | 北京金山云网络技术有限公司 | Ip库查询方法、装置及ip库压缩方法、装置 |
CN112347377A (zh) * | 2020-10-13 | 2021-02-09 | 咪咕视讯科技有限公司 | Ip地址段查找方法与业务调度方法、装置、电子设备 |
CN112347377B (zh) * | 2020-10-13 | 2023-10-20 | 咪咕视讯科技有限公司 | Ip地址段查找方法与业务调度方法、装置、电子设备 |
CN112732724A (zh) * | 2021-01-21 | 2021-04-30 | 杭州迪普科技股份有限公司 | 资产信息管理方法及装置 |
CN114301874B (zh) * | 2021-11-10 | 2022-11-18 | 北京邮电大学 | 基于IPv4地址地理位置信息的IPv6地址定位方法及电子设备 |
CN114301874A (zh) * | 2021-11-10 | 2022-04-08 | 北京邮电大学 | 基于IPv4地址地理位置信息的IPv6地址定位方法及电子设备 |
CN114500454A (zh) * | 2021-12-20 | 2022-05-13 | 成都鲁易科技有限公司 | 电子设备地理位置变更的检测方法及装置 |
CN114500454B (zh) * | 2021-12-20 | 2024-01-23 | 成都鲁易科技有限公司 | 电子设备地理位置变更的检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110769079A (zh) | 一种检索ip对应地理位置的方法及装置 | |
CN108255958B (zh) | 数据查询方法、装置和存储介质 | |
JP6626211B2 (ja) | ショートリンクを処理する方法及び装置並びにショートリンクサーバ | |
US9104676B2 (en) | Hash algorithm-based data storage method and system | |
EP2772040B1 (en) | Prefix and predictive search in a distributed hash table | |
US11182365B2 (en) | Systems and methods for distributed storage of data across multiple hash tables | |
CN111971931B (zh) | 在区块链网络中验证交易的方法以及构成该网络的节点 | |
CN106649708A (zh) | 存储数据的方法和装置 | |
WO2013097546A1 (en) | Assisting query and querying | |
CN104679778A (zh) | 一种搜索结果的生成方法及装置 | |
US11288274B1 (en) | System and method for storing data for, and providing, rapid database join functions and aggregation statistics | |
CN104572727A (zh) | 一种数据查询方法及装置 | |
CN109086456B (zh) | 数据索引方法及装置 | |
CN108228799B (zh) | 对象索引信息的存储方法及装置 | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN110413845B (zh) | 基于物联网操作系统的资源存储方法及装置 | |
EP3292481A1 (en) | Method, system and computer program product for performing numeric searches | |
CN110597852A (zh) | 数据处理方法、装置、终端及存储介质 | |
CN112800067A (zh) | 范围查询方法、装置、计算机可读存储介质及电子设备 | |
CN104052669A (zh) | 用于处理交替配置的最长前缀匹配表的装置和方法 | |
JP6705764B2 (ja) | 生成装置、生成方法、及び生成プログラム | |
CN111400301A (zh) | 一种数据查询方法、装置及设备 | |
KR101587756B1 (ko) | 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법 | |
CN111819552B (zh) | 访问控制列表的管理方法及装置 | |
CN111428114A (zh) | Elasticsearch搜索引擎的索引创建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200207 |
|
RJ01 | Rejection of invention patent application after publication |