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对应的规则。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。