发明内容
本发明的主要目的是提供一种IPv4和IPv6兼容处理的方法,旨在实现IPv4和IPv6的兼容处理、快速查询已存储的IP地址及简单、快捷地校验IPv6地址的合法性,同时降低***存储空间、提高***操作效率。
本发明提供了一种IPv4和IPv6兼容处理的方法,包括以下步骤:
定义互联网协议IP地址的表示形式为存储型和显示型,接收IP地址字节流信息并判断所述IP地址的版本是IPv4还是IPv6;
若是IPv4,则将IPv4地址使用对应的长整型数据进行唯一标识;若是IPv6,则根据预置转换规则,将IPv6地址的表示形式由显示型转换为存储型,并将转换后的存储型IPv6地址赋值为长整型IPv6地址;
根据预置的IP地址与所述长整型数据对应的IP映射关系建立IP映射关系表,并将所述IP映射关系表存储。
优选地,所述根据预置转换规则,将IPv6地址的表示形式由显示型转换为存储型的步骤具体包括:
以冒号为分割点,将IPv6地址分割为字符串数组;
判断分割后的每个字符串数组中是否含有四位字符;
若否,则判断不满四位的字符串数组是否为空字符串;
若是空字符串,则通过计算一个双冒号代表所需填充的零的位数来补齐字符串数组;
若不是空字符串,则在非空字符前填充零,将普通的非空字符串数组补齐四位。
优选地,所述IPv4和IPv6兼容处理的方法还包括步骤:
接收对已存储的IPv4或IPv6地址的查询请求;
根据预置转换规则,将所述IPv4或IPv6地址的表示形式由存储型转换为显示型。
优选地,所述根据预置转换规则,将IPv6地址的表示形式由存储型转换为显示型的步骤具体包括:
若IPv6地址为不带冒号的存储型,则补充冒号;
将带冒号的存储型IPv6地址进行冗余去零处理;
若经过去零处理后的存储型IPv6地址的首部和/或中部含有至少两个连续的零字符串,所述零字符串以冒号为分割点,则将所述连续的零字符串还原为双冒号,且在一个IPv6地址中只能出现一个双冒号。
优选地,所述根据预置转换规则,将IPv6地址的表示形式由显示型转换为存储型的步骤之后还包括:
校验IPv6地址的合法性。
优选地,所述校验IPv6地址的合法性的步骤具体包括:
以冒号为分割点,将带冒号的存储型IPv6地址分割成字符串数组;
判断所述字符串数组的长度是否为8;
若否,则所述IPv6地址不合法,不对其进行存储;
若是,则对所述字符串数组中的每个字符串进行校验,判断是否满足预置校验规则;
若有任一字符串不满足预置校验规则,则所述IPv6地址不合法,不对其进行存储。
本发明还提供了一种IPv4和IPv6兼容处理的装置,包括:
IP地址接收模块,用于定义IP地址的表示形式为存储型和显示型,接收IP地址字节流信息并判断所述IP地址的版本是IPv4还是IPv6;
IPv4地址模块,用于在接收的IP地址的版本为IPv4时,将IPv4地址使用对应的长整型数据进行唯一标识;
IPv6地址模块,用于在接收的IP地址的版本为IPv6时,根据预置转换规则,将IPv6地址的表示形式由显示型转换为存储型,并将转换后的存储型IPv6地址赋值为长整型IPv6地址;
IPv4和IPv6兼容处理模块,用于根据预置的IP地址与所述长整型数据对应的IP映射关系建立IP映射关系表,并将所述IP映射关系表存储。
优选地,所述IPv6地址模块具体包括:
IPv6地址存储型单元,用于根据预置转换规则,将IPv6地址的表示形式由显示型转换为存储型;
IPv6地址赋值单元,用于将转换后的存储型IPv6地址赋值为长整型IPv6地址;
其中,所述IPv6地址存储型单元具体用于:
以冒号为分割点,将IPv6地址分割为字符串数组;
判断分割后的每个字符串数组中是否含有四位字符;
若否,则判断不满四位的字符串数组是否为空字符串;
若是空字符串,则通过计算一个双冒号代表所需填充的零的位数来补齐字符串数组;
若不是空字符串,则在非空字符前填充零,将普通的非空字符串数组补齐四位。
优选地,所述IPv4和IPv6兼容处理的装置还包括:
IP查询模块,用于接收对已存储的IPv4或IPv6地址的查询请求;根据预置转换规则,将所述IPv4或IPv6地址的表示形式由存储型转换为显示型。
优选地,所述根据预置转换规则,将IPv6地址的表示形式由存储型转换为显示型的步骤具体包括:
若IPv6地址为不带冒号的存储型,则补充冒号;
将带冒号的存储型IPv6地址进行冗余去零处理;
若经过去零处理后的存储型IPv6地址的首部和/或中部含有至少两个连续的零字符串,所述零字符串以冒号为分割点,则将所述连续的零字符串还原为双冒号,且在一个IPv6地址中只能出现一个双冒号。
优选地,所述IPv4和IPv6兼容处理的装置还包括:
IPv6地址校验模块,用于校验IPv6地址的合法性。
优选地,所述IPv6地址校验模块具体用于:
以冒号为分割点,将带冒号的存储型IPv6地址分割成字符串数组;
判断所述字符串数组的长度是否为8;
若否,则所述IPv6地址不合法,不对其进行存储;
若是,则对所述字符串数组中的每个字符串进行校验,判断是否满足预置校验规则;
若有任一字符串不满足预置校验规则,则所述IPv6地址不合法,不对其进行存储。
本发明通过定义IP地址的两种表示形式为显示型和存储型、对IPv4地址进行长整型标识、IPv6地址进行赋值长整型、IPv6地址显示型和存储型之间的相互转换及准确高效地校验IPv6地址合法性的方法,实现了IPv4和IPv6的兼容处理、降低***存储空间、提高***操作效率的有益效果。
具体实施方式
以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1是本发明IPv4和IPv6兼容处理的方法第一实施例流程示意图。如图1所示,本发明IPv4和IPv6兼容处理的方法包括:
步骤S01、定义IP地址的表示形式为存储型和显示型;
在日常应用中,IPv6地址通常使用字符串来表示;在后续的操作中,因为涉及IPv6地址比较、IPv6地址范围选择等操作,所以对IPv6地址的存储格式有一定的要求。在一优选的实施例中,IPv6地址为“2009::2010”,为方便后续操作,将其表示成“2009:0000:0000:0000:0000:0000:0000:2010”形式,或者去掉冒号的“20090000000000000000000000002010”形式,按照所述完整的表示格式才能进行IP大小的合理比较和IP范围的正确选择。定义“2009::2010”这一类别的IP地址表示形式为表示型或显示型IP地址,定义“2009:0000:0000:0000:0000:0000:0000:2010” 这一类别的IP地址表示形式为带冒号的存储型或完整型IP地址,定义“20090000000000000000000000002010”这一类别的IP地址表示形式为不带冒号的存储型或完整型IP地址。
与此类似,对于IPv4地址,在一优选的实施例中,当IPv4地址显示型为“10.46.36.29”时,其带冒号的存储型为“010:046:036:029”,不带冒号的存储型为“010046036029”。
步骤S02、接收IP地址字节流信息并判断所述IP地址的版本是IPv4还是IPv6;若是IPv4,则执行步骤S03;若是IPv6,则执行步骤S04;
接收IP地址字节流信息,辨别所接收的IP地址的版本是IPv6还是IPv4。在一优选的实施例中,所述IP字节流信息为一串字节流,所述字节流中有专门表示IP版本的字段可以用来识别IP的版本。因此,很容易辨别所接收的IP地址的版本是IPv6还是IPv4。
步骤S03、将IPv4地址使用对应的长整型数据进行唯一标识;
若经判断接收到的IP地址字节流是IPv4地址,由于IPv4地址使用的是32位二进制编码并采用4个字节表示,且IPv4地址通常直接由长整型表示或由字符串表示,因此可以使用对应的长整型进行唯一标识,对IPv4地址的处理也比较简单。若IPv4地址直接由长整型表示,则直接用所述长整型进行唯一标识;若IPv4地址由字符串表示,则将所述IPv4地址使用对应的长整型数据进行唯一标识。这样操作的目的是便于后续与IPv6地址的兼容存储。
步骤S04、将IPv6地址的表示形式由显示型转换为存储型,并将转换后的存储型IPv6地址赋值为长整型IPv6地址;
因为在后续的操作中,涉及IPv6地址比较、IPv6地址范围选择等操作,为了便于操作,将所述IPv6地址表示为存储型;由于IPv6地址使用16个字节表示,因此无法用一个整型或长整型来直接表示。8个字节表示的带符号长整型的最大值为9223372036854775807,在用户日常使用的实际环境下,如城域网或者校园网的网络用户,IPv6地址的使用数目不会超过这么大的值,因此如果给每个IPv6地址定义一个唯一的长整型去表示,则能实现IPv6地址与IPv4地址的统一处理;在一优选的实施例中,IPv6地址的长整型值由***统一赋值。
步骤S05、根据预置的IP地址与所述长整型数据对应的IP映射关系建立IP映射关系表,并将所述IP映射关系表存储。
为保证IPv4和IPv6地址与所述长整型数值对应的唯一性,根据预置的IP地址与所述长整型数据对应的IP映射关系建立IP映射关系表,并将所述IP映射关系表存储。***每接收一个IPv6地址,就进行一次赋值。
在一优选的实施例中,通过定义IPID(Identity,识别码)来实现将IPv4地址使用对应的长整型数据进行唯一标识,同时将IPv6地址赋值长整型。由于IPv4地址的表示范围为:0.0.0.0~255.255.255.255,最大的IPv4地址为255.255.255.255,其对应的整数表示为4294967295,IPv4地址对应的长整型数据最大不会超过十一位数字,因此将1010以上的数字用以表示IPv6地址。为保证IPv4地址、IPv6地址与长整型数据一一对应,IPv6地址对应的数值表示由***统一赋值。
在一优选的实施例中,在内存中增加一个哈希映射表,在数据库中增加一个IP地址字符串与IP长整型的映射表T_FCS_IPMap。参照图2,图2是Mysql数据库中创建IP映射关系表T_FCS_IPMap部分示意图。如图2所示,根据Mysql数据库中创建的IP映射关系表T_FCS_IPMap,很容易得出IPv6地址和与之对应的IPID值。所述Mysql是一种关联数据库管理***,关联数据库将数据保存在不同的数据表中,而不是将所有数据放在一个大仓库内。这样就增加了***的运行速度并提高了***运行时的灵活性。图2的Mysql数据库中创建的IP映射关系表,将IPv6地址赋值IPID是通过自增的方式实现的;在一优选的实施例中,可采用哈希算法将IPv6地址赋值长整型。将所述IP映射关系同时存储在内存和数据库中。存储在内存中是为了便于***的快捷调用和计算,***将定期清理内存,而存储在数据库中则将会永久性保存。
本发明IPv4和IPv6兼容处理的方法通过定义IP地址的两种表示形式为显示型和存储型、对IPv4地址进行长整型标识、IPv6地址进行赋值长整型、IPv6地址显示型和存储型之间的相互转换及准确高效地校验IPv6地址合法性的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果。
参照图3,图3是本发明IPv4和IPv6兼容处理的方法中根据预置转换规则,将IPv6地址的表示形式由显示型转换为存储型一实施例流程示意图。如图3所示,本发明IPv4和IPv6兼容处理的方法中,根据预置转换规则,将IPv6地址的表示形式由显示型转换为存储型的步骤包括:
步骤S11、以冒号为分割点,将IPv6地址分割为字符串数组;
将IPv6地址表示为存储型首先要进行分割操作,通过冒号将IPv6地址字符串分割。在一优选的实施例中,所述IPv6地址为“123::321”,则分割成字符串数组{“123”,“”,“321”};
步骤S12、判断分割后的每个字符串数组中是否含有四位字符;若是,则表示所述IPv6地址为存储型;若否,则执行步骤S13;
判断分割后的每个字符串数据组中是否含有四位字符,这是因为IPv6地址采用128位二进制编码, 存储型表示形式的IPv6地址分割后的每个字符串数据组中包含4个字符,若分割后的每个字符串数组中均含有四位字符,则表示所述IPv6地址为存储型;
步骤S13、判断不满四位的字符串数组是否为空字符串;若是空字符串,则执行步骤S14;若不是空字符串,则执行步骤S15;
IPv6地址分割后,将不满四位的字符串数据组做填充补位的操作,将不满四位字符串填充零补齐四位。所述不满四位的字符串数组有两种情况:空字符串和普通的非空字符串;
步骤S14、通过计算一个双冒号代表所需填充的零的位数来补齐字符串数组;
若所述不满四位的字符串数组中有空字符串,则表示遇到了双冒号“::”,此时,需要通过计算一个双冒号代表几个零位来将双冒号还原成特定长度的“0000:”组合。在一优选的实施例中,所述显示型IPv6地址为“123::321”,分割后的字符串数组为{“123”,“”,“321”},所述分割后的字符串数组长度为3;而一个不含双冒号的显示型IPv6地址如“1:2:3:4:5:6:7:8”,分割后的字符串数组长度为8;因此,所述IPv6地址“123::321”中的一个冒号代表零字符的个数为:(8+1-3=6),因此,所述IPv6地址“123::321”中的空字符串这个空字符串“”可以还原成“0000:0000:0000:0000:0000:0000:”;
步骤S15、在非空字符前填充零,将普通的非空字符串数组补齐四位。
若所述不满四位的字符串为普通的非空字符串,则只需在非空字符前填充零,将普通非空字符串数组补齐四位即可。在一优选的实施例中,所述显示型IPv6地址“123::321”分给后的字符串数据组{“123”,“”,“321”}中的普通非空字符串“123”和“321”,补齐四位后,即为“0123”和“0321”;从而最终将所述显示型IPv6地址“123::321”转换成带冒号的存储型IPv6地址为:“0123:0000:0000:0000:0000:0000:0000:0321”。
本发明IPv4和IPv6兼容处理的方法通过将IPv6地址由显示型表示为存储型的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果。
参照图4,图4是本发明IPv4和IPv6兼容处理的方法第二实施例流程示意图。如图4所示,本发明IPv4和IPv6兼容处理的方法还包括:
步骤S06、接收对已存储的IPv4或IPv6地址的查询请求;根据预置转换规则,将所述IPv4或IPv6地址的表示形式由存储型转换为显示型。
因为已存储的IPv4和IPv6地址在存储之前分别做了如下处理:将IPv4地址使用对应的长整型数据进行唯一标识,将IPv6地址赋值长整型,且在存储时,保证IPv4和IPv6地址兼容存储的同时,为了节省字节和存储空间均采用无冒号的存储型IPv4和IPv6地址;而在用户使用时,通常习惯性使用显示型IP地址,因为显示型IP地址简便,因此,为了方便用户需要,查询已存储的IPv4和IPv6地址时,将所述IPv4和IPv6地址的表示形式再由存储型转换为显示型。
本发明IPv4和IPv6兼容处理的方法通过对接收对已存储的IPv4或IPv6地址的查询请求、根据预置转换规则
将所述IPv4或IPv6地址的表示形式由存储型转换为显示型的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果。
参照图5,图5是本发明IPv4和IPv6兼容处理的方法中,根据预置转换规则,将IPv6地址的表示形式由存储型转换为显示型一实施例流程示意图。如图5所示,本发明IPv4和IPv6兼容处理的方法中,根据预置转换规则,将IPv6地址的表示形式由存储型转换为显示型的步骤具体包括:
步骤S31、判断所述IPv6地址是否为带冒号的存储型;若否,则执行步骤S32;若是,则执行步骤S33;
步骤S32、补充冒号,将所述IPv6地址表示为带冒号的存储型;
若IPv6地址为不带冒号的存储型,则需要补充冒号,按照4位分割将冒号补充进去,这是为了后续将IPv6由存储型转换为显示型的需要;
步骤S33、将带冒号的存储型IPv6地址进行冗余去零处理;
因为显示型IPv6地址的表示方式比较简洁,因此需要将存储型IPv6地址字符串中冗余的零去掉。所述IPv6地址字符串中冗余的零有两类,一类是:IPv6地址字符串中全为零的空字符串;另一类是:IPv6地址字符串中普通的非空字符串中位于字符串前端的零。在一优选的实施例中,所述带冒号的存储型IPv6地址为“0123:0000:0000:0000:0000:0000:0000:0321”,将所述IPv6地址字符串中冗余的零去掉后还原为“123:0:0:0:0:0:0:321”;
步骤S34、判断去零处理后的存储型IPv6地址的首部和/或中部是否含有至少两个连续的零字符串;若含有至少两个连续的零字符串,则执行步骤S35;
步骤S35、将所述连续的零字符串还原为双冒号,且在一个IPv6地址中只能出现一个双冒号。
判断所述IPv6地址字符串的首部和/或中部是否含有至少两个连续的零字符串,所述连续的零字符串以冒号为分割点;若所述IPv6地址字符串的中部含有至少两个连续的零字符串,或所述IPv6地址字符串的首部含有至少两个连续的零字符串,或所述IPv6地址字符串的首部和中部均含有两个连续的零字符串,则将所述连续的零字符串还原为双冒号,但双冒号在同一IPv6地址字符串中只能出现一次。
在一优选的实施例中,去零后的IPv6地址字符串为“123:0:0:0:0:0:0:321”,将所述IPv6地址字符串中部的6个连续的零字符串还原为双冒号“::”,得到显示型IPv6地址字符串“123::321”。
在一优选的实施例中,去零后的IPv6地址字符串为“0:0:0:0:0:0:0:1”,将所述IPv6地址字符串首部的7个连续的零字符串还原为双冒号“::”,得到显示型IPv6地址字符串“::1”。
在一优选的实施例中,去零后的IPv6地址字符串为“0:0:0:1:0:0:0:1”,将所述IPv6地址字符串首部或中部的3个连续带号码的零字符串还原为双冒号“::”,得到显示型IPv6地址字符串“::1:0:0:0:1”或“0:0:0:1::1”。但不能同时去掉所述IPv6地址字符串首部和中部的3个连续的零字符串,因为双冒号在IPv6地址中只能出现一次。
本发明IPv4和IPv6兼容处理的方法通过将IPv6地址的表示形式由存储型转换为显示型的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果。
参照图6,图6本发明IPv4和IPv6兼容处理的方法第三实施例流程示意图。如图6所示,本发明IPv4和IPv6兼容处理的方法还包括:
步骤S07、校验IPv6地址的合法性。
用户输入的IPv6地址可能为不合法的IPv6地址组成,且只有在IPv6地址合法的情况下,对IPv6进行后续的操作和存储才有实际意义,因此要对IPv6地址的合法性进行校验。
本发明IPv4和IPv6兼容处理的方法通过校验IPv6地址合法性的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果
参照图7,图7本发明IPv4和IPv6兼容处理的方法中校验IPv6地址的合法性一实施例流程示意图。如图7所示,本发明IPv4和IPv6兼容处理的方法中,校验IPv6地址的合法性具体包括以下步骤:
步骤S21、以冒号为分割点,将带冒号的存储型IPv6地址分割成字符串数组;
判断IPv6地址是否合法之前,首先应将所述IPv6地址表示为带冒号的存储型;以冒号为分割点,将带冒号的存储型IPv6地址进行分割,得到字符串数组;
步骤S22、判断所述字符串数组的长度是否为8;若否,则执行步骤S23;若是,则执行步骤S24;
步骤S23、所述IPv6地址不合法,不对其进行存储;
因为IPv6地址采用128位二进制进行编码,每个地址可以按照冒号分割成8个整数;所以,若将带冒号的存储型IPv6地址分割后得到的字符串数组的长度应该是8;若分割存储型IPv6地址后得到的字符串数组长度不是8,则所述IPv6地址肯定不合法;对不合法的IPv6地址,不进行存储;
步骤S24、对所述字符串数组中的每个字符串进行校验,判断是否满足预置校验规则;若有任一字符串不满足预置校验规则,则执行步骤S23:所述IPv6地址不合法,不对其进行存储;若所有字符串均满足预置校验规则,则执行步骤S25;
步骤S25、所述IPv6地址合法;
若分割存储型IPv6地址后得到的字符串数组长度是8,则对分割后的每个字符串数组进行校验,判断是否满足预置校验规则。在一优选的实施例中,所述预置校验规则为:定义一个简单的正则表达式:"([0-9A-Fa-f]{1,4})",匹配0到9的数字和a~f的字母,长度最多为4;只有分割后的每个字符串数组的每一项都满足校验规则,输入的IPv6地址才为合法的IPv6地址格式。
本发明IPv4和IPv6兼容处理的方法通过校验IPv6地址合法性的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果。
参照图8,图8是本发明IPv4和IPv6兼容处理的装置第一实施例结构示意图。如图8所示,本发明IPv4和IPv6兼容处理的装置包括:
IP地址接收模块01,用于定义IP地址的表示形式为存储型和显示型,接收IP地址字节流信息并判断所述IP地址的版本是IPv4还是IPv6;
IPv4地址模块02,用于在接收的IP地址的版本为IPv4时,将IPv4地址使用对应的长整型数据进行唯一标识;
IPv6地址模块03,用于在接收的IP地址的版本为IPv6时,根据预置转换规则,将IPv6地址的表示形式由显示型转换为存储型,并将转换后的存储型IPv6地址赋值为长整型IPv6地址;
IPv4和IPv6兼容处理模块04,用于根据预置的IP地址与所述长整型数据对应的IP映射关系建立IP映射关系表并将所述IP映射关系表存储。
本发明IPv4和IPv6兼容处理的装置通过定义IP地址的两种表示形式为显示型和存储型、准确高效地校验IPv6地址的合法性及IPv6地址显示型和存储型之间的相互转换、对IPv4地址进行长整型标识、IPv6地址进行赋值长整型的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果。
参照图9,图9是本发明IPv4和IPv6兼容处理的装置中IPv6地址模块一实施例结构示意图。如图9所示,本发明IPv4和IPv6兼容处理的装置中,IPv6地址模块03具体包括:
IPv6地址存储型单元031,用于根据预置转换规则,将IPv6地址的表示形式由显示型转换为存储型;
IPv6地址赋值单元022,用于将转换后的存储型IPv6地址赋值为长整型IPv6地址;
所述IPv6地址存储型单元031具体用于:
以冒号为分割点,将IPv6地址分割为字符串数组;
判断分割后的每个字符串数组中是否含有四位字符;
若否,则判断不满四位的字符串数组是否为空字符串;
若是空字符串,则通过计算一个双冒号代表所需填充的零的位数来补齐字符串数组;
若不是空字符串,则在非空字符前填充零,将普通的非空字符串数组补齐四位。
本发明IPv4和IPv6兼容处理的装置通过根据预置转换规则,将IPv6地址的表示形式由显示型转换为存储型,并将转换后的存储型IPv6地址赋值为长整型IPv6地址的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果。
参照图10,图10是本发明IPv4和IPv6兼容处理的装置第二实施例结构示意图。如图10所示,本发明IPv4和IPv6兼容处理的装置还包括:
IP查询模块05,用于接收对已存储的IPv4或IPv6地址的查询请求;根据预置转换规则,将所述IPv4或IPv6地址的表示形式由存储型转换为显示型。
所述IP查询模块05将所述IPv6地址的表示形式由存储型转换为显示型的步骤具体包括:
若IPv6地址为不带冒号的存储型,则补充冒号;
将带冒号的存储型IPv6地址进行冗余去零处理;
若经过去零后的存储型IPv6地址字符串的首部和/或中部含有至少两个连续的零字符串,所述零字符串以冒号为分割点,则将所述连续的零字符串还原为双冒号,且在一个IPv6地址中只能出现一个双冒号。
本发明IPv4和IPv6兼容处理的装置通过将IPv4和IPv6的表示形式由存储型转换为显示型的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果。
参照图11,图11是本发明IPv4和IPv6兼容处理的装置第三实施例结构示意图。如图11所示,本发明IPv4和IPv6兼容处理的装置还包括:
IPv6地址校验模块06,用于校验IPv6地址的合法性。
所述IPv6地址校验模块06具体用于:
以冒号为分割点,将带冒号的存储型IPv6地址分割成字符串数组;
判断所述字符串数组的长度是否为8;
若否,则所述IPv6地址不合法,不对其进行存储;
若是,则对所述字符串数组中的每个字符串进行校验,判断是否满足预置校验规则;
若有任一字符串不满足预置校验规则,则所述IPv6地址不合法,不对其进行存储。
本发明IPv4和IPv6兼容处理的装置通过校验IPv6地址合法性的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果。
本发明通过定义IP地址的两种表示形式为显示型和存储型、准确高效地校验IPv6地址的合法性及IPv6地址显示型和存储型之间的相互转换、对IPv4地址进行长整型标识、IPv6地址进行赋值长整型并对IP地址进行查询的方法,实现了IPv4和IPv6地址的兼容处理、降低***存储空间、提高***操作效率的有益效果。
以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。