[发明专利]一种IP快速范围匹配的方法及系统有效
申请号: | 202111126037.5 | 申请日: | 2021-09-24 |
公开(公告)号: | CN113873056B | 公开(公告)日: | 2023-09-26 |
发明(设计)人: | 刘德建;张春双;何巍巍;陈宏展 | 申请(专利权)人: | 福建天晴在线互动科技有限公司 |
主分类号: | H04L61/103 | 分类号: | H04L61/103;H04L61/2503;H04L9/40;G06F16/903;A63F13/35 |
代理公司: | 福州旭辰知识产权代理事务所(普通合伙) 35233 | 代理人: | 程勇 |
地址: | 350212 福*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 ip 快速 范围 匹配 方法 系统 | ||
本发明提供了一种IP快速范围匹配的方法,所述方法包括以下步骤:步骤S1、加载IP范围列表文件,解析IP范围地址,并将解析出的IP首地址为key密钥,将IP范围地址的起始值和结束值的结构体链表value函数的Map对象中;步骤S2、将Map对象中的IP范围地址的起始值和结束值的结构体链表按照从小到大的顺序进行排序、去重、去包含,整合连接IP范围地址;步骤S3、将待匹配的IP字符串首地址以及整体转化为ULONG整数类型值A和B;步骤S4、判断匹配是否成功,是,则返回对应的IP范围地址的链表,使用二分查找算法在链表中匹配ULONG整数类型值B,并返回匹配结果,否,则返回待匹配IP范围地址不在IP范围内;本发明能够实现待匹配的IP范围地址进行IP匹配。
技术领域
本发明涉及计算机网络技术领域,特别是一种IP快速范围匹配的方法及系统。
背景技术
目前的IP限制一般采用软件防火墙或者硬件防火墙的方式进行限制,但是软件防火墙的范围匹配算法效率低、维护困难;硬件防火墙存在高昂的采购价格,配置规则复杂、维护困难等问题。
发明内容
为克服上述问题,本发明的目的是提供一种能够实现在IP范围地址进行IP匹配的方法。
本发明采用以下方案实现:一种IP快速范围匹配的方法,所述方法包括以下步骤:
步骤S1、加载IP范围列表文件,解析IP范围地址,并将解析出的IP首地址为key密钥,以及结构体链表为value函数的信息,保存至Map对象中,所述结构体链表记载IP范围的起始值和结束值;
步骤S2、将Map对象中的结构体链表按照从小到大的顺序进行排序、去重、去包含,整合连接IP范围地址,减少结构体链表的内容;
步骤S3、将待匹配的IP字符串首地址以及整体转化为ULONG整数类型值A和B,使用ULONG整数类型值A为key密钥到Map对象中匹配;
步骤S4、判断匹配是否成功,是,则返回对应的结构体链表,使用二分查找算法在链表中匹配ULONG整数类型值B,并返回匹配结果,否,则返回待匹配IP范围地址不在IP范围内,从而能够实现待匹配的IP范围地址进行IP匹配。
进一步的,所述步骤S1进一步具体为:通过fopen函数打开本地文件,然后通过fgets函数循环读取一行文件内容,从文件中每次一行,循环读取IP范围地址内容,解析IP范围地址,并将其保存到以IP首地址为Key密钥,结构体链表为value函数的Map对象中;将IP范围地址转化为Map对象的流程为:按分割符分割IP范围地址字符串和Mask字符串,将IP字符串分割并按规则转化为ULONG类型整数ulIP及首地址u1,将Mask字符串转化为整数类型,并按公式转化为IP的起始值和结束值并保存到IpRang结构体中,将IpRang结构体保存到Map对象u1为Key密钥对应的结构体链表中。
进一步的,所述步骤S2中的整合连接IP范围地址具体为:遍历整个结构体链表,每次二个结构体进行比较,每次递增一位,依次循环,直至最后一个结构体。
进一步的,所述步骤S4中的二分查找算法具体为:整个结构体链表从小到大排序,通过每次取中间的值与要匹配的值进行匹配。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建天晴在线互动科技有限公司,未经福建天晴在线互动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111126037.5/2.html,转载请声明来源钻瓜专利网。