[发明专利]一种匹配IP网段的方法及装置有效
申请号: | 201910462104.7 | 申请日: | 2019-05-30 |
公开(公告)号: | CN110351397B | 公开(公告)日: | 2022-06-14 |
发明(设计)人: | 陈志华 | 申请(专利权)人: | 湖北微源卓越科技有限公司 |
主分类号: | H04L61/2503 | 分类号: | H04L61/2503;H04L61/2557;H04L101/668;H04L101/695 |
代理公司: | 武汉河山金堂专利事务所(普通合伙) 42212 | 代理人: | 胡清堂;陈懿 |
地址: | 430073 湖北省武汉市东*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 匹配 ip 网段 方法 装置 | ||
1.一种匹配IP网段的方法,其特征在于,所述方法包括:
S1、对基于IP网段的策略组进行子网段划分,提取子网段中的子网掩码,生成掩码库,并初始化IP网段的Hash链表;
S2、将待匹配的IP依次与所述掩码库中的掩码进行逻辑与运算,得到待匹配的IP网段;
S3、计算所述待匹配IP网段的Hash值,将所述Hash值与一个最大质数H1进行取模运算;
S4、根据所述取模运算的结果匹配所述Hash链表,返回匹配结果;
所述步骤S1中,初始化IP网段的Hash链表的具体过程为:
分别计算各个子网段的Hash值,将所述各个子网段的Hash值与一个最大质数H1进行取模运算,分别得到一个INDEX,将所述INDEX作为Hash链表中数组的下标;如果有多个网段的INDEX相同,将所有的INDEX相同的网段依次存到一个链表中。
2.根据权利要求1所述的匹配IP网段的方法,其特征在于,所述步骤S2中,所述将待匹配的IP依次与掩码库中的掩码进行逻辑与运算时,采用先匹配大掩码,后匹配小掩码的规则。
3.根据权利要求1所述的匹配IP网段的方法,其特征在于,所述步骤S4中:读取Hash链表并依次与所述待匹配IP网段取模运算的结果进行匹配,所述匹配Hash链表的过程中,如果匹配到的INDEX处对应的是一个链表,依次遍历所述链表,将所述待匹配的IP与所述链表上网段的子网掩码进行逻辑与运算,匹配字符串是否一致,如果一致即返回,匹配成功;如果不一致,继续遍历,直至访问到所述链表尾部,匹配结束。
4.一种匹配IP网段的装置,其特征在于,所述装置包括:
初始化模块:用于对基于IP网段的策略组进行子网段划分,提取子网段中的子网掩码,生成掩码库,并初始化IP网段Hash链表;
运算模块:用于将待匹配的IP依次与所述掩码库中的掩码进行逻辑与运算,得到待匹配的IP网段;计算所述待匹配IP网段的Hash值,将所述Hash值与最大质数H1进行取模运算;
匹配模块:用于根据所述取模运算的结果匹配Hash链表,返回匹配结果;
所述初始化模块中,初始化IP网段的Hash链表的具体过程为:
分别计算各个子网段的Hash值,将所述各个子网段的Hash值与一个最大质数H1进行取模运算,分别得到一个INDEX,将所述INDEX作为Hash链表中数组的下标;如果有多个网段的INDEX相同,将所有的INDEX相同的网段依次存到一个链表中。
5.根据权利要求4所述的匹配IP网段的装置,其特征在于,初始化IP网段Hash链表的具体过程为:
分别计算各个子网段的Hash值,将所述各个子网段的Hash值与一个最大质数H1进行取模运算,分别得到一个INDEX,将所述INDEX作为Hash链表中数组的下标;如果有多个网段的INDEX相同,将所有的INDEX相同的网段依次存到一个链表中。
6.根据权利要求4所述的匹配IP网段的装置,其特征在于,所述运算模块中,所述将待匹配的IP依次与掩码库中的掩码进行与运算时,采用先匹配大掩码,后匹配小掩码的规则。
7.根据权利要求4所述的匹配IP网段的装置,其特征在于,所述匹配模块中,如果匹配到的INDEX处是一个链表,依次遍历所述链表,将所述待匹配的IP与所述链表上网段的子网掩码进行逻辑与运算,匹配字符串是否一致,如果一致即返回,匹配成功;如果不一致,继续遍历,直至访问到链表尾部,匹配结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖北微源卓越科技有限公司,未经湖北微源卓越科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910462104.7/1.html,转载请声明来源钻瓜专利网。