一种IP快速范围匹配的方法及系统技术方案

技术编号:31705390 阅读:18 留言:0更新日期:2022-01-01 11:07
本发明专利技术提供了一种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快速范围匹配的方法及系统


[0001]本专利技术涉及计算机网络
,特别是一种IP快速范围匹配的方法及系统。

技术介绍

[0002]目前的IP限制一般采用软件防火墙或者硬件防火墙的方式进行限制,但是软件防火墙的范围匹配算法效率低、维护困难;硬件防火墙存在高昂的采购价格,配置规则复杂、维护困难等问题。

技术实现思路

[0003]为克服上述问题,本专利技术的目的是提供一种能够实现在IP范围地址进行IP匹配的方法。
[0004]本专利技术采用以下方案实现:一种IP快速范围匹配的方法,所述方法包括以下步骤:
[0005]步骤S1、加载IP范围列表文件,解析IP范围地址,并将解析出的IP首地址为key密钥,将IP范围地址的起始值和结束值的结构体链表value函数的Map对象中;
[0006]步骤S2、将Map对象中的IP范围地址的起始值和结束值的结构体链表按照从小到大的顺序进行排序、去重、去包含,整合连接IP范围地址,减少结构体链表的内容;
[0007]步骤S3、将待匹配的IP字符串首地址以及整体转化为ULONG整数类型值A和B,使用ULONG整数类型值A为key密钥到Map对象中匹配;
[0008]步骤S4、判断匹配是否成功,是,则返回对应的IP范围地址的链表,使用二分查找算法在链表中匹配ULONG整数类型值B,并返回匹配结果,否,则返回待匹配IP范围地址不在IP范围内,从而能够实现待匹配的IP范围地址进行IP匹配。
[0009]进一步的,所述步骤S1进一步具体为:通过fopen函数打开本地文件,然后通过fgets函数循环读取一行文件内容,从文件中每次一行,循环读取IP范围地址内容,解析IP范围地址,并将其保存到以IP首地址为Key密钥,IP范围地址的起始值和结束值的结构体链表为value函数的Map对象中;将IP范围地址转化为Map对象的流程为:按分割符分割IP范围地址字符串和Mask字符串,将IP字符串分割并按规则转化为ULONG类型整数ulIP及首地址u1,将Mask字符串转化为整数类型,并按公式转化为IP的起始值和结束值并保存到IpRang结构体中,将IpRang结构体保存到Map对象u1为Key密钥对应的IP范围地址的链表中。
[0010]进一步的,所述步骤S2中的整合连接IP范围地址具体为:遍历整个IP范围地址的List链表,每次二个结构体进行比较,每次递增一位,依次循环,直至最后一个结构体。
[0011]进一步的,所述步骤S4中的二分查找算法具体为:整个IP范围地址的链表从小到大排序,通过每次取中间的值与要匹配的值进行匹配。
[0012]本专利技术还提供了一种IP快速范围匹配的系统,包括加载模块、整合模块、匹配模块和判断模块,所述加载模块,即加载IP范围列表文件,解析IP范围地址,并将解析出的IP首地址为key密钥,将IP范围地址的起始值和结束值的结构体链表value函数的Map对象中;所述整合模块,即将Map对象中的IP范围地址的起始值和结束值的结构体链表按照从小到大
的顺序进行排序、去重、去包含,整合连接IP范围地址,减少结构体链表的内容;所述匹配模块,即将待匹配的IP字符串首地址以及整体转化为ULONG整数类型值A和B,使用ULONG整数类型值A为key密钥到Map对象中匹配;所述判断模块,即判断匹配是否成功,是,则返回对应的IP范围地址的链表,使用二分查找算法在链表中匹配ULONG整数类型值B,并返回匹配结果,否,则返回待匹配IP范围地址不在IP范围内,从而能够实现待匹配的IP范围地址进行IP匹配。
[0013]进一步的,所述加载模块进一步具体为:通过fopen函数打开本地文件,然后通过fgets函数循环读取一行文件内容,从文件中每次一行,循环读取IP范围地址内容,解析IP范围地址,并将其保存到以IP首地址为Key密钥,IP范围地址的起始值和结束值的结构体链表为value函数的Map对象中;将IP范围地址转化为Map对象的流程为:按分割符分割IP范围地址字符串和Mask字符串,将IP字符串分割并按规则转化为ULONG类型整数ulIP及首地址u1,将Mask字符串转化为整数类型,并按公式转化为IP的起始值和结束值并保存到IpRang结构体中,将IpRang结构体保存到Map对象u1为Key密钥对应的IP范围地址的链表中。
[0014]进一步的,所述整个号模块中的整合连接IP范围地址具体为:遍历整个IP范围地址的List链表,每次二个结构体进行比较,每次递增一位,依次循环,直至最后一个结构体。
[0015]进一步的,所述判断模块中的二分查找算法具体为:整个IP范围地址的链表从小到大排序,通过每次取中间的值与要匹配的值进行匹配。
[0016]本专利技术的有益效果在于:本专利技术能够在十几万条待匹配的IP范围地址进行IP匹配,达到了微秒级的响应速度;应用在游戏账号服务端,通过灵活控制IP的放行以及限制,保证账服长久稳定运行,为游戏用户正常登录游戏提供保障,提升游戏用户的体验。
附图说明
[0017]图1是本专利技术的方法流程示意图。
[0018]图2是本专利技术的系统原理框图。
具体实施方式
[0019]下面结合附图对本专利技术做进一步说明。
[0020]请参阅图1所示,本专利技术的一种IP快速范围匹配的方法,所述方法包括以下步骤:
[0021]步骤S1、加载IP范围列表文件,解析IP范围地址,并将解析出的IP首地址为key密钥,将IP范围地址的起始值和结束值的结构体链表value函数的Map对象中;
[0022]步骤S2、将Map对象中的IP范围地址的起始值和结束值的结构体链表按照从小到大的顺序进行排序、去重、去包含,整合连接IP范围地址,减少结构体链表的内容;
[0023]步骤S3、将待匹配的IP字符串首地址以及整体转化为ULONG整数类型值A和B,使用ULONG整数类型值A为key密钥到Map对象中匹配;
[0024]步骤S4、判断匹配是否成功,是,则返回对应的IP范围地址的链表,使用二分查找算法在链表中匹配ULONG整数类型值B,并返回匹配结果,否,则返回待匹配IP范围地址不在IP范围内,从而能够实现待匹配的IP范围地址进行IP匹配。
[0025]下面通过一具体实施例对本专利技术作进一步说明:
[0026]1.加载IP范围列表文件,从文件中每次一行,循环读取IP范围地址内容,解析IP范
围地址,并将其保存到以IP首地址为Key,IP起始值和结束值的结构体链表为value函数的Map对象中;通过fopen函数打开本地文件,然后通过fgets函数循环读取一行文件内容,并按指定规则解析;
[0027]例:122.191.32.0/19转化到Map对象122
←→
{2059345920,2059354111}。
[0028]122.191.32.0/19转化流程:122.191.32.0/19
‑‑...

【技术保护点】

【技术特征摘要】
1.一种IP快速范围匹配的方法,其特征在于,所述方法包括以下步骤:步骤S1、加载IP范围列表文件,解析IP范围地址,并将解析出的IP首地址为key密钥,将IP范围地址的起始值和结束值的结构体链表value函数的Map对象中;步骤S2、将Map对象中的IP范围地址的起始值和结束值的结构体链表按照从小到大的顺序进行排序、去重、去包含,整合连接IP范围地址,减少结构体链表的内容;步骤S3、将待匹配的IP字符串首地址以及整体转化为ULONG整数类型值A和B,使用ULONG整数类型值A为key密钥到Map对象中匹配;步骤S4、判断匹配是否成功,是,则返回对应的IP范围地址的链表,使用二分查找算法在链表中匹配ULONG整数类型值B,并返回匹配结果,否,则返回待匹配IP范围地址不在IP范围内,从而能够实现待匹配的IP范围地址进行IP匹配。2.根据权利要求1所述的一种IP快速范围匹配的方法,其特征在于:所述步骤S1进一步具体为:通过fopen函数打开本地文件,然后通过fgets函数循环读取一行文件内容,从文件中每次一行,循环读取IP范围地址内容,解析IP范围地址,并将其保存到以IP首地址为Key密钥,IP范围地址的起始值和结束值的结构体链表为value函数的Map对象中;将IP范围地址转化为Map对象的流程为:按分割符分割IP范围地址字符串和Mask字符串,将IP字符串分割并按规则转化为ULONG类型整数ulIP及首地址u1,将Mask字符串转化为整数类型,并按公式转化为IP的起始值和结束值并保存到IpRang结构体中,将IpRang结构体保存到Map对象u1为Key密钥对应的IP范围地址的链表中。3.根据权利要求1所述的一种IP快速范围匹配的方法,其特征在于:所述步骤S2中的整合连接IP范围地址具体为:遍历整个IP范围地址的List链表,每次二个结构体进行比较,每次递增一位,依次循环,直至最后一个结构体。4.根据权利要求1所述的一种IP快速范围匹配的方法,其特征在于:所述步骤S4中的二分查找算法具体为:整个IP范围地址的链表从小到大排序,通过每次取中间的值与要匹配的值进行匹配。5.一种IP快速范围匹配的系统,其特征...

【专利技术属性】
技术研发人员:刘德建张春双何巍巍陈宏展
申请(专利权)人:福建天晴在线互动科技有限公司
类型:发明
国别省市:

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

1