CN106375490B - Ip信息匹配与扩展方法 - Google Patents
Ip信息匹配与扩展方法 Download PDFInfo
- Publication number
- CN106375490B CN106375490B CN201610756254.5A CN201610756254A CN106375490B CN 106375490 B CN106375490 B CN 106375490B CN 201610756254 A CN201610756254 A CN 201610756254A CN 106375490 B CN106375490 B CN 106375490B
- Authority
- CN
- China
- Prior art keywords
- section
- segment
- sections
- given
- information
- 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.)
- Active
Links
Classifications
-
- 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/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2557—Translation policies or rules
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种IP信息匹配与扩展方法,包括以下步骤:获取原始IP段信息表;根据原始IP段信息表,生成用于匹配算法的NC‑O‑NF IP段码表;将带有原始IP段信息表的MD5值的NC‑O‑NF IP段码表发送到各分布式系统主机处理;在各分布式系统主机中,使用MD5值相符的NC‑O‑NF IP段码表,采用IP‑IP段匹配算法将给定IP与NC‑O‑NF IP段码表中的IP段进行匹配,完成字段扩展操作。本发明所描述的相关处理流程和算法可以实现近似于该类问题的最优处理方法,可以快速实现大数据处理环境下的IP类字段的高效匹配与扩展。
Description
技术领域
本发明涉及IP匹配技术领域,特别涉及一种IP信息匹配与扩展方法。
背景技术
在大数据环境下,对数据中已有的IP信息进行关联扩展是十分重要的工作,因为大数据环境下数据量及其庞大,处理的高效性显得十分重要,直接决定了整个系统的数据吞吐率是核心的关键问题。
中国专利公开号为CN 101527900 A的发明专利,该发明专利提供一种匹配IP版本信息的方法,它能够有效克服由于IP版本不匹配造成的IP地址无法识别的问题,但是该发明不能快速实现大数据处理环境下的IP类字段的高效匹配与扩展。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种高效的IP信息匹配与扩展方法,可以快速实现大数据处理环境下的IP类字段的高效匹配与扩展。
为了实现上述目的,本发明提供一种IP信息匹配与扩展方法,包括以下步骤:
步骤S1,获取原始IP段信息表;
步骤S2,根据原始IP段信息表,生成用于匹配算法的NC-O-NF IP段码表;
步骤S3,将带有原始IP段信息文件的MD5值的NC-O-NF IP段码表发送到各分布式系统主机,由各分布式系统主机验证MD5值是否相符,如果不符则重新生成最终的NC-O-NFIP段码表;
步骤S4,在各分布式系统主机中,使用MD5值相符的NC-O-NF IP段码表,并采用IP-IP段匹配算法快速将给定IP与NC-O-NF IP段码表中的IP段进行匹配,完成字段扩展操作。
进一步的,各步骤中的原始IP段信息至少包括以下字段:段开始IP、段结束IP、段优先级、段关联信息。
进一步的,在步骤S2中,生成NC-O-NF IP段码表的方法如下:
将原始IP段信息表,按照段开始IP由小到大进行排序,如果段开始IP相同则按段结束IP由小到大排序;
首先,新建空的结果IP段表;
然后,对已排序的原始IP段信息表倒序进行遍历,按照下面处理原则逐个插入到结果IP段表;
(1)如果待插入IP段与结果IP段中间存在空隙则用空IP段来填充空隙
(2)如果待插入IP段与结果IP段存在交叉,则非交叉部分与交叉部分分别生成新的IP段,且交叉部分的IP段关联信息选取交叉IP段中优先级高或同优先级条件下IP段范围较小的IP段信息作为新的IP段;
(3)将所生成的新IP段按顺序插入到结果IP段表中,形成边界连续非交叉的新结果IP段;
(4)重复步骤(1)-(3)直到遍历完所有的原始IP段表,形成最终的结果IP段表。
进一步的,在步骤S3中,生成最终的NC-O-NF IP段码表文件的方法如下:
遍历结果IP段码表,将其中边界紧邻的具有相同的IP段关联信息的IP段进行合并,同时删除其中的空IP段;
将原始IP段信息文件的MD5值与处理后的结果IP段码表,一起保存成文件,即得到最终的NC-O-NF IP段码表文件。
进一步的,在步骤S4中,定义给定IP与NC-O-NF IP段码表中的IP段的具有三种位置关系,如下:
a、给定IP小于IP段,即给定IP小于IP段的段开始IP;
b、给定IP等于IP段,即给定IP在IP段的段开始IP和段结束IP之间;
c、给定IP大于IP段,即给定IP大于IP段的段结束IP。
进一步的,在步骤S4中,所述IP-IP段匹配算法包括如下步骤:
采用二分查找算法,在NC-O-NF IP段码表中寻找与给定IP相匹配的IP段:
将给定IP与NC-O-NF IP段表中间IP段进行比较:
(1)如果给定IP小于中间的IP段,则在开始IP段与中间IP段之间继续递归的查找;
(2)如果给定IP大于中间的IP段,则在中间IP段与结束IP段之间继续递归的查找;
(3)如果给定IP等于中间的IP段,则查找结束。
如果已访问NC-O-NF IP段表中所有的IP段未找到与给定IP匹配的IP,则查找失败,结束查找。
本发明使用NC-O-NF IP段码表实现快速高效的IP-IP段匹配与扩展的流程方法,并且专利中提供了NC-O-NF IP段码表的生成方法。本发明所描述的相关处理流程和算法可以实现近似于该类问题的最优处理方法,可以快速实现大数据处理环境下的IP类字段的高效匹配与扩展。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明的工作流程图;
图2为本发明的IP段部分交叉示意图;
图3为本发明中新的IP段生成示意图;
图4为本发明中匹配IP小于IP段示意图;
图5为本发明中匹配IP等于IP段示意图;
图6为本发明中匹配IP大于IP段示意图;
图7为本发明中IP-IP段匹配算法流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
缩写解释:非交叉、有序、无碎片IP段关联码表(NC-O-NF‘Non cross,orderly,nofragments’IPS table),简称为:NC-O-NF IP段码表。
大数据系统中,数据是以数据流的方式进行处理的,可以按条进行处理。以DNS日志处理系统为例,每条DNS日志形如:
223.103.17.23|dns.weixin.qq.com|20160622000015|111.30.135.151;223.85.133.151;120.198.203.152|0;
例子中DNS日志是以“|”为字段分割符,字段的含义分别是:用户IP、访问域名、日志时间戳、DNS服务返回IP列表(以“;”为字段内分割符)、服务返回码。
在实际应用中,需要根据第一字段“用户IP”,第四字段“服务器IP”进行关联扩展。例如需要根据用户IP扩展出:用户所属的业务、用户来源地市、用户的个人信息等。根据服务器IP,扩展出:服务器所在省份/地市、所属的运营商、所属资源类型(缓存、IDC、CDN、直连)等。
类似上述IP字段扩展的应用场景,在通信及计算机行业中都普遍的存在,如何高效的完成上述任务将是一个十分重要的基础性工作。
针对此类问题,本发明提供一种IP信息匹配与扩展方法,参考附图1,包括以下步骤:
步骤S1,获取原始IP段信息表。
步骤S2,根据原始IP段信息表,生成用于匹配算法的NC-O-NF IP段码表。
其中,生成NC-O-NF IP段码表的方法如下:
将原始IP段信息表,按照段开始IP由小到大进行排序,如果段开始IP相同则按段结束IP由小到大排序;
首先,新建空的结果IP段表;
然后,对已排序的原始IP段信息表倒序进行遍历,按照下面处理原则逐个插入到结果IP段表;
(1)如果待插入IP段与结果IP段中间存在空隙则用空IP段来填充空隙
(2)如果待插入IP段与结果IP段存在交叉,则非交叉部分与交叉部分分别生成新的IP段,且交叉部分的IP段关联信息选取交叉IP段中优先级高或同优先级条件下IP段范围较小的IP段信息作为新的IP段;如图3所示;
(3)将所生成的新IP段按顺序插入到结果IP段表中,形成边界连续非交叉的新结果IP段;
(4)重复步骤(1)-(3)直到遍历完所有的原始IP段表,形成最终的结果IP段表。
步骤S3,将带有原始IP段信息文件的MD5值的NC-O-NF IP段码表发送到各分布式系统主机,由各分布式系统主机验证MD5值是否相符,如果不符则重新生成最终的NC-O-NFIP段码表。
其中,生成最终的NC-O-NF IP段码表文件的方法如下:
遍历结果IP段码表,将其中边界紧邻的具有相同的IP段关联信息的IP段进行合并,同时删除其中的空IP段;
将原始IP段信息文件的MD5值与处理后的结果IP段码表,一起保存成文件,即得到最终的NC-O-NF IP段码表文件。
步骤S4,在各分布式系统主机中,使用MD5值相符的NC-O-NF IP段码表,并采用IP-IP段匹配算法快速将给定IP与NC-O-NF IP段码表中的IP段进行匹配,完成字段扩展操作。
具体的,在各分布式系统主机中,加载有效的NC-O-NF IP段码表,使用基于二分查找原理实现的IP-IP段匹配算法(IP-IPS Matching Algorithm)将给定IP与NC-O-NF IP段码表中的IP段进行匹配,完成字段扩展操作。
实现算法前,首先,定义给定IP与NC-O-NF IP段码表中的IP段的具有三种位置关系,(如图4-6所示)如下:
a、给定IP小于IP段,即给定IP小于IP段的段开始IP,如图4所示;
b、给定IP等于IP段,即给定IP在IP段的段开始IP和段结束IP之间,如图5所示;
c、给定IP大于IP段,即给定IP大于IP段的段结束IP,如图6所示.
根据以上三种位置关系,本发明对传统的二分查找算法进行改进,开发出了应用于IP与IP段匹配的查找算法,时间复杂度与传统的二分查找算法一致都为O(logn)。
采用改进后的二分查找算法,在NC-O-NF IP段码表中寻找与给定IP相匹配的IP段,图7为IP-IP段匹配算法流程图。
所述IP-IP段匹配算法包括如下步骤:
将给定IP与NC-O-NF IP段表中间IP段进行比较:
(1)如果给定IP小于中间的IP段,则在开始IP段与中间IP段之间继续递归的查找;
(2)如果给定IP大于中间的IP段,则在中间IP段与结束IP段之间继续递归的查找;
(3)如果给定IP等于中间的IP段,则查找结束。
如果已访问NC-O-NF IP段表中所有的IP段未找到与给定IP匹配的IP,则查找失败,结束查找。
此外,各步骤中的原始IP段信息至少包括以下字段:段开始IP、段结束IP、段优先级、段关联信息。
下面举例来说明:
一般用户提供的IP段码表中会存在交叉冲突的IP段,可能是边界交叉、包含交叉或部分交叉等情况,例如:
A段:111.30.135.151,111.30.135.255,Cache;
B段:111.30.135.166,111.30.135.169,CDN;
是包含交叉即:B段是A段的真子集。或者出现:
C段:111.30.135.151,111.30.135.188,Cache;
D段:111.30.135.188,111.30.135.255,CDN;
以上是C段与D段共享一个边界,称为边界交叉。如果交叉的范围扩大即成为部分交叉,如图2中E、F段的关系。
另外,IP段码表中也会出现碎片的IP段定义,例如:
S1:111.30.135.151,111.30.135.151,Cache;
S2:111.30.135.152,111.30.135.166,Cache;
S3:111.30.135.167,111.30.135.255,Cache;
其中S1、S2、S3同属一个类型的IP段,但定义时人为的拆散,形成大量连续的但信息相同的IP段定义。
以上情况的出现导致IP与IP段匹配工作产生歧义,需要在匹配前对原始的IP段信息进行处理,形成无歧义的IP段定义码表即提到的NC-O-NF IP段码表。
在生成NC-O-NF IP段码表过程中,需要将原始IP段定义信息按照相邻的边界拆分成连续非交叉的新IP段,新IP段中的IP关联信息是各交叉IP段中优先级高或同优先级条件下IP段范围较的IP段信息,如图3所示。
接着,遍历生成的新IP段,将相邻的具有相同的IP段关联信息的IP段进行合并,删除掉IP段信息为空的“空段”如图3中New4段。
接下来,将原始IP段信息文件的MD5值连同生成的NC-O-NF IP段码表保存文件,并发送到各分布式系统主机中,在各主机使用前先校验MD5值是否是由当前的IP段信息表生成的NC-O-NF IP段码表,如果不是则需要重新生成NC-O-NF IP段码表后再使用。
使用的带有原始IP段信息MD5值的NC-O-NF IP段码表文件格式如下:
第一行:原始IP段信息表名1,原始IP段信息表名2,…….
第二行:开始IP1,结束IP1,IP1信息
第三行:开始IP2,结束IP2,IP2信息
…
注:第一行中有所有IP段来源的原始IP段表的名称及其MD5值,保证多个IP段码表中有任意一个发生变化时,都需要重新生成该NC-O-NF IP段码表。
本发明使用NC-O-NF IP段码表实现快速高效的IP-IP段匹配与扩展的流程方法,并且专利中提供了NC-O-NF IP段码表的生成方法。本发明所描述的相关处理流程和算法可以实现近似于该类问题的最优处理方法,可以快速实现大数据处理环境下的IP类字段的高效匹配与扩展。本发明能够为同类型的分析工作做好了基本的技术准备。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。
Claims (6)
1.一种IP信息匹配与扩展方法,其特征在于,包括以下步骤:
步骤S1,获取原始IP段信息表;
步骤S2,根据原始IP段信息表,生成用于匹配算法的NC-O-NF IP段码表;
非交叉、有序、无碎片IP段关联码表(NC-O-NF‘Non cross,orderly,no fragments’IPStable),简称为:NC-O-NF IP段码表;
步骤S3,将带有原始IP段信息文件的MD5值的NC-O-NF IP段码表发送到各分布式系统主机,由各分布式系统主机验证MD5值是否相符,如果不符则重新生成最终的NC-O-NF IP段码表;
步骤S4,在各分布式系统主机中,使用MD5值相符的NC-O-NF IP段码表,并采用IP-IP段匹配算法快速将给定IP与NC-O-NF IP段码表中的IP段进行匹配,完成字段扩展操作;
IP-IP段匹配算法为采用二分查找算法,在NC-O-NF IP段码表中寻找与给定IP相匹配的IP段。
2.如权利要求1所述的IP信息匹配与扩展方法,其特征在于:各步骤中的原始IP段信息至少包括以下字段:段开始IP、段结束IP、段优先级、段关联信息。
3.如权利要求1所述的IP信息匹配与扩展方法,其特征在于:在步骤S2中,生成NC-O-NFIP段码表的方法如下:
将原始IP段信息表,按照段开始IP由小到大进行排序,如果段开始IP相同则按段结束IP由小到大排序;
首先,新建空的结果IP段表;
然后,对已排序的原始IP段信息表倒序进行遍历,按照下面处理原则逐个插入到结果IP段表;
(1)如果待插入IP段与结果IP段中间存在空隙则用空IP段来填充空隙;
(2)如果待插入IP段与结果IP段存在交叉,则非交叉部分与交叉部分分别生成新的IP段,且交叉部分的IP段关联信息选取交叉IP段中优先级高或同优先级条件下IP段范围较小的IP段信息作为新的IP段;
(3)将所生成的新IP段按顺序插入到结果IP段表中,形成边界连续非交叉的新结果IP段;
(4)重复步骤(1)-(3)直到遍历完所有的原始IP段表,形成最终的结果IP段表。
4.如权利要求1所述的IP信息匹配与扩展方法,其特征在于:在步骤S3中,生成最终的NC-O-NF IP段码表文件的方法如下:
遍历结果IP段码表,将其中边界紧邻的具有相同的IP段关联信息的IP段进行合并,同时删除其中的空IP段;
将原始IP段信息文件的MD5值与处理后的结果IP段码表,一起保存成文件,即得到最终的NC-O-NF IP段码表文件。
5.如权利要求1所述的IP信息匹配与扩展方法,其特征在于:在步骤S4中,定义给定IP与NC-O-NF IP段码表中的IP段的具有三种位置关系,如下:
a、给定IP小于IP段,即给定IP小于IP段的段开始IP;
b、给定IP等于IP段,即给定IP在IP段的段开始IP和段结束IP之间;
c、给定IP大于IP段,即给定IP大于IP段的段结束IP。
6.如权利要求5所述的IP信息匹配与扩展方法,其特征在于:在步骤S4中,所述IP-IP段匹配算法包括如下步骤:
采用二分查找算法,在NC-O-NF IP段码表中寻找与给定IP相匹配的IP段:
将给定IP与NC-O-NF IP段表中间IP段进行比较:
(1)如果给定IP小于中间的IP段,则在开始IP段与中间IP段之间继续递归的查找;
(2)如果给定IP大于中间的IP段,则在中间IP段与结束IP段之间继续递归的查找;
(3)如果给定IP等于中间的IP段,则查找结束;
如果已访问NC-O-NF IP段表中所有的IP段未找到与给定IP匹配的IP,则查找失败,结束查找。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610756254.5A CN106375490B (zh) | 2016-08-29 | 2016-08-29 | Ip信息匹配与扩展方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610756254.5A CN106375490B (zh) | 2016-08-29 | 2016-08-29 | Ip信息匹配与扩展方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106375490A CN106375490A (zh) | 2017-02-01 |
CN106375490B true CN106375490B (zh) | 2019-02-12 |
Family
ID=57902521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610756254.5A Active CN106375490B (zh) | 2016-08-29 | 2016-08-29 | Ip信息匹配与扩展方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106375490B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011993B (zh) * | 2017-12-07 | 2021-07-16 | 北京百悟科技有限公司 | IP地址信息的存储、IPv4地址的查询的方法及系统 |
CN110769079A (zh) * | 2019-10-30 | 2020-02-07 | 杭州迪普科技股份有限公司 | 一种检索ip对应地理位置的方法及装置 |
CN114465979B (zh) * | 2021-12-21 | 2024-01-02 | 天翼云科技有限公司 | 一种ip库生成方法、系统及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527900A (zh) * | 2008-03-05 | 2009-09-09 | 华为技术有限公司 | 匹配ip版本信息的方法、实体及系统 |
CN102984292A (zh) * | 2012-12-03 | 2013-03-20 | 北京锐安科技有限公司 | 一种ip段地址集中查找ip地址的方法 |
CN103561123A (zh) * | 2013-10-28 | 2014-02-05 | 北京国双科技有限公司 | Ip段归属确定方法和装置 |
-
2016
- 2016-08-29 CN CN201610756254.5A patent/CN106375490B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527900A (zh) * | 2008-03-05 | 2009-09-09 | 华为技术有限公司 | 匹配ip版本信息的方法、实体及系统 |
CN102984292A (zh) * | 2012-12-03 | 2013-03-20 | 北京锐安科技有限公司 | 一种ip段地址集中查找ip地址的方法 |
CN103561123A (zh) * | 2013-10-28 | 2014-02-05 | 北京国双科技有限公司 | Ip段归属确定方法和装置 |
CN103561123B (zh) * | 2013-10-28 | 2017-05-10 | 北京国双科技有限公司 | Ip段归属确定方法和装置 |
Non-Patent Citations (1)
Title |
---|
一种IP地址的扩展方法;周永鹏;《计算机应用》;20020430;第22卷(第4期);86-87 |
Also Published As
Publication number | Publication date |
---|---|
CN106375490A (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106375490B (zh) | Ip信息匹配与扩展方法 | |
CN103020255B (zh) | 分级存储方法和装置 | |
CN106095597B (zh) | 客户端数据处理方法及装置 | |
US20080033904A1 (en) | Method for culling a litigation discovery file set | |
KR102172903B1 (ko) | 블록체인 기술 기반 데이터 베이스 관리 시스템 | |
CN108279943B (zh) | 索引加载方法和装置 | |
CN104657413A (zh) | 加密的内存列存储 | |
CN104424251A (zh) | 一种多维度拆分的计算方法以及系统 | |
KR102018445B1 (ko) | 캐스캐이딩 스타일 시트 파일들의 압축 | |
WO2020098315A1 (zh) | 一种信息匹配方法及终端 | |
CN105100050A (zh) | 用户权限管理方法及系统 | |
CN105447113A (zh) | 一种基于大数据的信息分析方法 | |
CN103617226B (zh) | 一种正则表达式匹配方法及装置 | |
CN104182519B (zh) | 一种文件扫描方法及装置 | |
CN110768786A (zh) | 基于aes算法的信息分割加密及解密合并系统和方法 | |
CN106156070A (zh) | 一种查询方法、文件合并方法与相关装置 | |
CN111726249B (zh) | 网络设备的配置文件处理方法及装置 | |
US20150088840A1 (en) | Determining segment boundaries for deduplication | |
CN104778252B (zh) | 索引的存储方法和装置 | |
CN106033438A (zh) | 舆情数据存储方法和服务器 | |
CN110958212B (zh) | 一种数据压缩、数据解压缩方法、装置及设备 | |
CN114218176A (zh) | 一种跨平台数据安全共享交换方法 | |
CN105825132B (zh) | 一种数据处理、查询方法及相关装置 | |
CN109359477B (zh) | 一种数据加密、数据验证方法及其系统 | |
US8607355B2 (en) | Social network privacy using morphed communities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |