一种IP匹配的方法及装置制造方法及图纸

技术编号:15520796 阅读:174 留言:0更新日期:2017-06-04 10:15
本发明专利技术实施例公开了一种IP匹配的方法及装置。该方法包括:建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系;将待分类的IP数值与所述第一映射关系进行匹配,获取小于所述待分类的IP数值对应的第一规则IP集合;将待分类的IP数值与所述第二映射关系进行匹配,获取大于等于所述待分类的IP数值对应的第二规则IP集合;获取所述第一规则ID集合和所述第二规则ID集合的规则交集,所述规则交集为所述待分类IP对应的规则。从而在本发明专利技术中对索引及查找进行优化,大大减少了系统对内存的开销,内存的消耗跟规则的数量保持线性关系。

Method and device for IP matching

The embodiment of the invention discloses a method and a device for IP matching. The method comprises the following steps: first to establish the mapping rules of ID and initial IP, and establishes the mapping rules of IP second and the termination of IP; matching will be IP numerical classification and the first mapping, get less than the value corresponding to the IP classification of the first set of IP rules; matching relation the IP numerical classification and the second mapping, obtain equal to or greater than the value corresponding to the IP classification of the second rule IP set; obtaining the first set of rules of ID and the set of second rules the rules of the ID intersection, the intersection of the classification rules for the corresponding IP rules. Thus, the index and the search are optimized in the invention, and the system memory overhead is greatly reduced, and the memory consumption is kept linear with the number of rules.

【技术实现步骤摘要】
一种IP匹配的方法及装置
本专利技术实施例涉及计算机的
,尤其涉及一种IP匹配的方法及装置。
技术介绍
随着互联网、社交网络、电子商务等的迅猛发展,每天新增的数据量也迅速激增。对于海量数据,需要根据预设的规则,通过高速实时的比对,来筛选过滤海量的数据。可以用Redis内存数据库来保存这些预设规则的索引。但在实际业务中,有大量的规则是关于IP范围的筛选查找,比如有这样三条关于IP范围查找的规则:[0.0.0.10,0.0.0.15],[0.0.0.14,0.0.0.20],[0.0.0.12,0.0.0.18],需要从海量数据中实时筛选IP落在这几条规则的IP范围内的数据。在传统的算法实现中,对于IP范围的规则,是列举IP区间范围的所有值,在建立索引的时候,将IP作为key,对应的规则ID作为value,采用Redis的Set数据结构,假如上面的三条规则其ID分别为1,2,3,那么其在Redis中的索引结构如下所示:这种索引存储结构可以实现在O(1)的时间复杂度完成规则的比对。对于IP值为0.0.0.12的海量数据,其匹配的规则为规则1和规则3,只需进行一次的查找。在这种实现中,索引和实现简单,查找效率高效。但是这种方式如果下发的规则所包含的IP范围比较大,需要枚举所有的IP值,然后对每一个IP值建立索引,对Redis索引内存的消耗比较大,与规则的数量成几何级数的关系。特别当一个很巨大范围的IP规则下发时,其消耗的内存可能会对系统会造成比较严重的后果。
技术实现思路
本专利技术实施例的目的在于提出一种IP匹配的方法及装置,旨在解决如何提高查找效率的问题。为达此目的,本专利技术实施例采用以下技术方案:第一方面,一种IP匹配的方法,所述方法包括:建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系;将待分类的IP数值与所述第一映射关系进行匹配,获取小于所述待分类的IP数值对应的第一规则IP集合;将待分类的IP数值与所述第二映射关系进行匹配,获取大于等于所述待分类的IP数值对应的第二规则IP集合;获取所述第一规则ID集合和所述第二规则ID集合的规则交集,所述规则交集为所述待分类IP对应的规则。优选地,所述建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系,包括:以所述起始IP作为key,规则ID值作为value,IP范围起始值作为起始分数,建立所述value与所述起始分数的映射关系;以所述终止IP作为key,规则ID值作为value,IP范围终止值作为终止分数,建立所述value与所述终止分数的映射关系。优选地,所述建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系之后,还包括:将所述起始分数和所述终止分数转换为整数值进行存储。优选地,所述将所述起始分数和所述终止分数转换为整数值进行存储,包括:若所述IP范围起始值为A1.A2.A3.A4,则转换后的整型值为A4(A1*2563+A2*2562+A3*256+A4)。第二方面,一种IP匹配的装置,所述装置包括:建立模块,用于建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系;第一获取模块,用于将待分类的IP数值与所述第一映射关系进行匹配,获取小于所述待分类的IP数值对应的第一规则IP集合;第二获取模块,用于将待分类的IP数值与所述第二映射关系进行匹配,获取大于等于所述待分类的IP数值对应的第二规则IP集合;第三获取模块,用于获取所述第一规则ID集合和所述第二规则ID集合的规则交集,所述规则交集为所述待分类IP对应的规则。优选地,所述建立模块,具体用于:以所述起始IP作为key,规则ID值作为value,IP范围起始值作为起始分数,建立所述value与所述起始分数的映射关系;以所述终止IP作为key,规则ID值作为value,IP范围终止值作为终止分数,建立所述value与所述终止分数的映射关系。优选地,所述装置还包括:存储模块,用于在建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系之后,将所述起始分数和所述终止分数转换为整数值进行存储。优选地,所述存储模块,具体用于:若所述IP范围起始值为A1.A2.A3.A4,则转换后的整型值为A4(A1*2563+A2*2562+A3*256+A4)。本专利技术实施例提供的一种IP匹配的方法及装置,建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系;将待分类的IP数值与所述第一映射关系进行匹配,获取小于所述待分类的IP数值对应的第一规则IP集合;将待分类的IP数值与所述第二映射关系进行匹配,获取大于等于所述待分类的IP数值对应的第二规则IP集合;获取所述第一规则ID集合和所述第二规则ID集合的规则交集,所述规则交集为所述待分类IP对应的规则。从而在本专利技术中对索引及查找进行优化,大大减少了系统对内存的开销,内存的消耗跟规则的数量保持线性关系。附图说明图1是本专利技术实施例提供的一种IP匹配的方法的流程示意图;图2是本专利技术实施例提供的一种索引关系表的示意图;图3是本专利技术实施例提供的另一种IP匹配的方法的流程示意图;图4是本专利技术实施例提供的一种IP匹配的装置的功能模块示意图。具体实施方式下面结合附图和实施例对本专利技术实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术实施例,而非对本专利技术实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术实施例相关的部分而非全部结构。参考图1,图1是本专利技术实施例提供的一种IP匹配的方法的流程示意图。如图1所示,所述IP匹配的方法包括:步骤101,建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系;优选地,所述建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系,包括:以所述起始IP作为key,规则ID值作为value,IP范围起始值作为起始分数,建立所述value与所述起始分数的映射关系;以所述终止IP作为key,规则ID值作为value,IP范围终止值作为终止分数,建立所述value与所述终止分数的映射关系。具体的,本专利技术基于Redis的SortedSets的数据结构来进行索引的存储,这种数据结构其value存入的是一个没有重复元素的有序集合,同时集合的每个成员都关联了一个评分,这个评分被用来按照从最低分到最高分的方式排序集合中的成员。至此,将规则ID作为value,IP范围的起止转换为整数后作为评分存入。假如如下几条规则:规则ID起始IP终止IP10.0.0.100.0.0.2020.0.0.180.0.0.3030.0.0.150.0.0.25以IP_start作为key,规则号值1作为value,IP范围起始值10作为score存入SortedSets数据集合中。以IP_end作为key,规则号值1作为value,IP范围终止值20作为score存入SortedSets数据集合中。将规则2,3按同样的方式建立索引,索引如图2所示。步骤102,将待分类的IP数值与所述第一映射关系进行匹配,获取小于所述待分类的IP数值本文档来自技高网...
一种IP匹配的方法及装置

【技术保护点】
一种IP匹配的方法,其特征在于,所述方法包括:建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系;将待分类的IP数值与所述第一映射关系进行匹配,获取小于所述待分类的IP数值对应的第一规则IP集合;将待分类的IP数值与所述第二映射关系进行匹配,获取大于等于所述待分类的IP数值对应的第二规则IP集合;获取所述第一规则ID集合和所述第二规则ID集合的规则交集,所述规则交集为所述待分类IP对应的规则。

【技术特征摘要】
1.一种IP匹配的方法,其特征在于,所述方法包括:建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系;将待分类的IP数值与所述第一映射关系进行匹配,获取小于所述待分类的IP数值对应的第一规则IP集合;将待分类的IP数值与所述第二映射关系进行匹配,获取大于等于所述待分类的IP数值对应的第二规则IP集合;获取所述第一规则ID集合和所述第二规则ID集合的规则交集,所述规则交集为所述待分类IP对应的规则。2.根据权利要求1所述的方法,其特征在于,所述建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系,包括:以所述起始IP作为key,规则ID值作为value,IP范围起始值作为起始分数,建立所述value与所述起始分数的映射关系;以所述终止IP作为key,规则ID值作为value,IP范围终止值作为终止分数,建立所述value与所述终止分数的映射关系。3.根据权利要求1或2所述的方法,其特征在于,所述建立规则ID与起始IP的第一映射关系,并建立所述规则IP与终止IP的第二映射关系之后,还包括:将所述起始分数和所述终止分数转换为整数值进行存储。4.根据权利要求3所述的方法,其特征在于,所述将所述起始分数和所述终止分数转换为整数值进行存储,包括:若所述IP范围起始值为A1.A2.A3.A4,则转换后的整型值为A4(A1*2563+A2*2562+A3*256+...

【专利技术属性】
技术研发人员:周寅生
申请(专利权)人:北京锐安科技有限公司
类型:发明
国别省市:北京,11

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

1