确定IP地址所属地区的方法及装置制造方法及图纸

技术编号:19544508 阅读:19 留言:0更新日期:2018-11-24 20:44
本发明专利技术实施例提供一种确定IP地址所属地区的方法及装置。该方法包括:将待查询的IP地址值转换为二进制值;根据转换后的二进制值,在预先构建的地址二叉树中,查找与之匹配的节点,所述地址二叉树的深度与IP地址包括的二进制位数相同,所述地址二叉树包括具有地区信息的节点;根据所述与之匹配的节点包括的地区信息,确定所述待查询的IP地址的所属地区。本发明专利技术实施例的方法,提高了确定IP地址所属地区的速度。

Method and Device for Determining the Area of IP Address

The embodiment of the present invention provides a method and device for determining the area to which an IP address belongs. The method includes: converting the IP address value to binary value; searching the matching node in the pre-constructed address binary tree according to the converted binary value. The depth of the address binary tree is the same as the binary number included in the IP address, and the address binary tree includes nodes with regional information. According to the region information included by the matching node, the region of the IP address to be queried is determined. The method of the embodiment of the present invention improves the speed of determining the area to which the IP address belongs.

【技术实现步骤摘要】
确定IP地址所属地区的方法及装置
本专利技术实施例涉及互联网
,尤其涉及一种确定互联网协议(InternetProtocol,简称:IP)地址所属地区的方法及装置。
技术介绍
IP地址是由互联网协议提供的一种统一格式的地址。互联网中的每一个设备都被分配了唯一的IP地址,基于该IP地址进行互联网通信。互联网管理机构会为不同的地区分配不同的IP地址区间段,例如IP区间段:211.82.80.0-211.82.99.255对应的地区是北京。因此,可以基于IP地址值确定该IP地址所属的地区。确定IP地址所属地区有着广泛的应用场景。例如,购物网站可以基于用户的IP地址确定用户所在地区,提供具有地区特色的服务。网站还可以基于用户的IP地址确定用户的登陆地区,对于登陆地区出现异常的账户进行相应的安全控制。传统的确定IP地址所属地区的方法是把IP地址信息存储到关系型数据库中,在并发量比较少,实时性要求不高的情况下是可行的,但是当并发量增大时,便会对关系型数据库产生很大的压力,导致访问速度明显减慢。因此,对于高并发、实时性要求高的场合,现有方法无法快速准确的确定IP地址所属地区。
技术实现思路
本专利技术实施例提供一种确定IP地址所属地区的方法及装置,用以解决现有技术中确定IP地址所属地区时存在的复杂度高、查询速度慢的问题。第一方面,本专利技术实施例提供一种确定IP地址所属地区的方法,包括:将待查询的IP地址值转换为二进制值;根据转换后的二进制值,在预先构建的地址二叉树中,查找与之匹配的节点,地址二叉树的深度与IP地址包括的二进制位数相同,地址二叉树包括具有地区信息的节点;根据与之匹配的节点包括的地区信息,确定待查询的IP地址的所属地区。可选的,上述方法还包括:根据各个地区的起始IP地址和终止IP地址构建地址二叉树。可选的,根据各个地区的起始IP地址和终止IP地址构建地址二叉树包括:将起始IP地址和终止IP地址转换为二进制值;分别根据同一地区的起始IP地址和终止IP地址的二进制值,按照从高位到低位的顺序,若二进制值为0,则建立左子树,若二进制值为1,则建立右子树,初始化地址二叉树。可选的,上述方法还包括:从第一标志位开始,为同一地区的起始IP地址中二进制值为0的节点创建同深度的节点并初始化相应的地区信息,为同一地区的终止IP地址中二进制值为1的节点创建同深度的节点并初始化相应的地区信息;第一标志位的前一位为同一地区的起始IP地址和终止IP地址的二进制值第一次出现不同的位。可选的,上述方法还包括:为各个地区的起始IP地址和终止IP地址的二进制值的最低位对应的节点初始化相应的地区信息。可选的,根据转换后的二进制值,在预先构建的地址二叉树中,查找与之匹配的节点包括:按照转换后的二进制值从高位到低位的顺序,从地址二叉树的根节点开始搜索;若二进制值为0,则搜索左子树;若二进制值为1,则搜索右子树。可选的,上述方法还包括:若搜索到的节点包括地址信息,则停止搜索,并将包括地址信息的节点确定为与之匹配的的节点。第二方面,本专利技术实施例提供一种确定IP地址所属地区的装置,包括:转换模块,用于将待查询的IP地址值转换为二进制值;查询模块,用于根据转换后的二进制值,在预先构建的地址二叉树中,查找与之匹配的节点,地址二叉树的深度与IP地址包括的二进制位数相同;确定模块,用于根据与之匹配的节点包括的地区信息,确定待查询的IP地址的所属地区。第三方面,本专利技术实施例提供一种确定IP地址所属地区的设备,包括:存储器;处理器;以及计算机程序;其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如第一方面任一项所述的方法。第四方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现如第一方面任一项所述的方法。本专利技术实施例提供的确定IP地址所属地区的方法及装置,通过以二叉树作为数据模型,对IP地址库进行建模,实现了快速、高效、准确的根据IP来获取对应地区信息。本实施例提供的确定IP地址所属地区的方法的查找时间复杂度为常数,即不管数据量多大,查找可以始终保持非常高的速度。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。图1为本专利技术提供的确定IP地址所属地区的方法一实施例的流程图;图2为本专利技术提供的确定IP地址所属地区的方法一实施例中构建地址二叉树的流程图;图3为本专利技术提供的确定IP地址所属地区的方法一实施例中构建的地址二叉树的结构示意图;图4为本专利技术提供的确定IP地址所属地区的方法一实施例中查找地址二叉树的流程图;图5为本专利技术提供的确定IP地址所属地区的装置一实施例的结构示意图;图6为本专利技术提供的确定IP地址所属地区的设备一实施例的结构示意图。通过上述附图,已示出本专利技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本专利技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本专利技术的概念。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本专利技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本专利技术的一些方面相一致的装置和方法的例子。本专利技术的说明书和权利要求书中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本专利技术中的“第一”和“第二”只起标识作用,而不能理解为指示或暗示顺序关系、相对重要性或者隐含指明所指示的技术特征的数量。“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本专利技术的说明书中通篇提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。需要说明的是,本专利技术实施例中均以32位的IPv4地址为例进行说明,但是并不构成对本专利技术实施例的限制,对于其他版本的IP地址同样可以采用本专利技术实施例所提供的方法确定IP地址所属地区。例如,对于128位的IPv6地址同样适用。图1为本专利技术提供的确定IP地址所属地区的方法一实施例的流程图。如图1所示,本实施例提供的确定IP地址所属地区的方法可以包括:步骤S101、将待查询的IP地址值转换为二进制值。无论接收到的待查询的IP地址值以何种形式提供,均需要首先将其转换为二进制值。例如,若待查询的IP地址值为211.82.80.0,该地址值由4部分数字组成,各部分之间用小数点分开,每部分数字可以转换成8位二进制数字。首先将211.82.80.0本文档来自技高网...

【技术保护点】
1.一种确定IP地址所属地区的方法,其特征在于,包括:将待查询的IP地址值转换为二进制值;根据转换后的二进制值,在预先构建的地址二叉树中,查找与之匹配的节点,所述地址二叉树的深度与IP地址包括的二进制位数相同,所述地址二叉树包括具有地区信息的节点;根据所述与之匹配的节点包括的地区信息,确定所述待查询的IP地址的所属地区。

【技术特征摘要】
1.一种确定IP地址所属地区的方法,其特征在于,包括:将待查询的IP地址值转换为二进制值;根据转换后的二进制值,在预先构建的地址二叉树中,查找与之匹配的节点,所述地址二叉树的深度与IP地址包括的二进制位数相同,所述地址二叉树包括具有地区信息的节点;根据所述与之匹配的节点包括的地区信息,确定所述待查询的IP地址的所属地区。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据各个地区的起始IP地址和终止IP地址构建所述地址二叉树。3.根据权利要求2所述的方法,其特征在于,所述根据各个地区的起始IP地址和终止IP地址构建所述地址二叉树包括:将所述起始IP地址和所述终止IP地址转换为二进制值;分别根据同一地区的起始IP地址和终止IP地址的二进制值,按照从高位到低位的顺序,若二进制值为0,则建立左子树,若二进制值为1,则建立右子树,初始化所述地址二叉树。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:从第一标志位开始,为所述同一地区的起始IP地址中二进制值为0的节点创建同深度的节点并初始化相应的地区信息,为所述同一地区的终止IP地址中二进制值为1的节点创建同深度的节点并初始化相应的地区信息;所述第一标志位的前一位为所述同一地区的起始IP地址和终止IP地址的二进制值第一次出现不同的位。5.根据权利要求4所述的方法,其特征在于,所述方法还包括...

【专利技术属性】
技术研发人员:龙飞
申请(专利权)人:泰康保险集团股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1