CN110266834B - 基于互联网协议地址的地区查找方法及装置 - Google Patents

基于互联网协议地址的地区查找方法及装置 Download PDF

Info

Publication number
CN110266834B
CN110266834B CN201910688369.9A CN201910688369A CN110266834B CN 110266834 B CN110266834 B CN 110266834B CN 201910688369 A CN201910688369 A CN 201910688369A CN 110266834 B CN110266834 B CN 110266834B
Authority
CN
China
Prior art keywords
internet protocol
protocol address
segment
ending
area number
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
Application number
CN201910688369.9A
Other languages
English (en)
Other versions
CN110266834A (zh
Inventor
卢健
沈晓敏
黄红艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201910688369.9A priority Critical patent/CN110266834B/zh
Publication of CN110266834A publication Critical patent/CN110266834A/zh
Application granted granted Critical
Publication of CN110266834B publication Critical patent/CN110266834B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/604Address structures or formats
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/69Types of network addresses using geographic information, e.g. room number

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种基于互联网协议地址的地区查找方法及装置,其中的方法包括:接收包含有目标互联网协议地址的地区查找指令;将目标互联网协议地址转化为预设长整型的数值格式,得到对应的目标字符串;应用二分查找法在第一有序三维数组中查找匹配的地区编号,或在哈希表中查找匹配的地区编号;第一有序三维数组存有各个互联网协议地址各自对应的字符串与地区编号之间的对应关系;哈希表存有各个互联网协议地址对应的索引与地区编号之间的对应关系;输出目标字符串匹配的地区编号以根据该地区编号确定目标互联网协议地址所在的地区。本申请能够有效提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性。

Description

基于互联网协议地址的地区查找方法及装置
技术领域
本申请涉及数据处理技术领域,具体涉及基于互联网协议地址的地区查找方法及装置。
背景技术
互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(IP Address),IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
在金融行业的反洗钱或者反欺诈等风险监控过程中,时常会遇到根据交易IP来对比两个地点是否是同一个地点的问题。这时需要先根据IP查找到对应的地区,但每个地区会可能会有多个IP区间,而且这些区间往往又不是连续的。仅国外的IP区间就有64700个,如果逐个按顺序查找,效率是很低的,基本无法满足风险监控的实时性的要求,而查找地区这项功能通常又是很重要的。
因此,亟需设计一种高效率的地区查找方法。
发明内容
针对现有技术中的问题,本申请提供一种基于互联网协议地址的地区查找方法及装置,能够有效提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种基于互联网协议地址的地区查找方法,包括:
接收地区查找指令,其中,该地区查找指令中包含有目标互联网协议地址;
将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串;
应用二分查找法在预设的第一有序三维数组中查找与所述目标字符串匹配的地区编号,或者,在预设的哈希表中查找与所述目标字符串匹配的地区编号;
其中,所述第一有序三维数组中存储有各个互联网协议地址各自对应的字符串与地区编号之间的对应关系;所述哈希表中存储有各个所述互联网协议地址对应的索引与地区编号之间的对应关系;
输出所述目标字符串匹配的地区编号以根据该地区编号确定所述目标互联网协议地址所在的地区。
进一步地,在所述接收地区查找指令之前,还包括:
获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址;
应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的第一有序三维数组。
进一步地,所述应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的第一有序三维数组,包括:
根据预设的第一字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串;
确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第一有序三维数组;
其中,所述第一有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
进一步地,所述根据预设的第一字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串,包括:
应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串;
删掉各个所述十二位字符串中的各个分隔点;
在以0开头的各个所述十二位字符串中,删除在第一个非0的数字之前出现的0,得到各个所述互联网协议地址各自对应的字符串。
进一步地,在所述接收地区查找指令之前,还包括:
获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址;
应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的哈希表。
进一步地,所述应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的哈希表,包括:
根据预设的第二字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串;
确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第二有序三维数组;
其中,所述第二有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
将所述第二有序三维数组中的各个所述字符串均转化为对应的数字段,其中,所述数字段由四段数字组成,且每段中的数字小于或等于三位数;
应用所述数字段,根据预设的索引建立规则生成各个所述地区编号各自对应的至少一个地址索引,并生成包含有各个所述索引的哈希表。
进一步地,所述根据预设的第二字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串,包括:
应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串;
删掉各个所述十二位字符串中的各个分隔点。
进一步地,所述将所述第二有序三维数组中的各个所述字符串均转化为对应的数字段,包括:
将所述第二有序三维数组中的各个所述十二位字符串划分为四个段,且每个段中均包含有三个数字;
将每段中以0开头的三位数中,删除在第一个非0的数字之前出现的0,且若存在全部为0的段,则保留其中一个0,以得到各个所述十二位字符串分别对应的数字段。
进一步地,所述应用所述数字段,根据预设的索引建立规则生成各个所述地区编号各自对应的至少一个地址索引,并生成包含有各个所述索引的哈希表,包括:
选择一地区编号作为当前的目标地区编号;
执行地址索引的获取步骤:在目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中,以从左向右的顺序选取起始互联网协议地址或结束互联网协议地址中的第一个出现数值与彼此不同的段,并将该第一个出现数值与彼此不同的段确定为所述目标地区编号对应的目标段;以及,从所述目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中的倒数第一段开始,应用所述目标段依次获取所述目标地区编号对应的全部的地址索引;
更新作为当前的目标地区编号的地区编号,并重新执行所述地址索引的获取步骤,直至获取得到各个所述地区编号各自对应的至少一个地址索引。
第二方面,本申请提供一种基于互联网协议地址的地区查找装置,包括:
指令接收模块,用于接收地区查找指令,其中,该地区查找指令中包含有目标互联网协议地址;
字符串转换模块,用于将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串;
地区编号查找模块,用于应用二分查找法在预设的第一有序三维数组中查找与所述目标字符串匹配的地区编号,或者,在预设的哈希表中查找与所述目标字符串匹配的地区编号;
其中,所述第一有序三维数组中存储有各个互联网协议地址各自对应的字符串与地区编号之间的对应关系;所述哈希表中存储有各个所述互联网协议地址对应的索引与地区编号之间的对应关系;
编码输出模块,用于输出所述目标字符串匹配的地区编号以根据该地区编号确定所述目标互联网协议地址所在的地区。
进一步地,还包括:
互联网协议地址获取模块,用于获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址;
第一有序三维数组生成模块,用于应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的第一有序三维数组。
进一步地,所述第一有序三维数组生成模块包括:
第一字符串转换单元,用于根据预设的第一字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串;
第一字符串对应单元,用于确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
第一排序单元,用于按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第一有序三维数组;
其中,所述第一有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
进一步地,所述第一字符串转换单元具体用于执行如下内容:
应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串;
删掉各个所述十二位字符串中的各个分隔点;
在以0开头的各个所述十二位字符串中,删除在第一个非0的数字之前出现的0,得到各个所述互联网协议地址各自对应的字符串。
进一步地,还包括:
互联网协议地址获取模块,用于获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址;
哈希表生成模块,用于应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的哈希表。
进一步地,所述哈希表生成模块包括:
第二字符串转换单元,用于根据预设的第二字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串;
第二字符串对应单元,用于确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
第二排序单元,用于按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第二有序三维数组;
其中,所述第二有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
数字段转化单元,用于将所述第二有序三维数组中的各个所述字符串均转化为对应的数字段,其中,所述数字段由四段数字组成,且每段中的数字小于或等于三位数;
地址索引建立单元,用于应用所述数字段,根据预设的索引建立规则生成各个所述地区编号各自对应的至少一个地址索引,并生成包含有各个所述索引的哈希表。
进一步地,所述第二字符串转换单元具体用于执行下述内容:
应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串;
删掉各个所述十二位字符串中的各个分隔点。
进一步地,所述数字段转化单元具体用于执行下述内容:
将所述第二有序三维数组中的各个所述十二位字符串划分为四个段,且每个段中均包含有三个数字;
将每段中以0开头的三位数中,删除在第一个非0的数字之前出现的0,且若存在全部为0的段,则保留其中一个0,以得到各个所述十二位字符串分别对应的数字段。
进一步地,所述地址索引建立单元具体用于执行下述内容:
选择一地区编号作为当前的目标地区编号;
执行地址索引的获取步骤:在目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中,以从左向右的顺序选取起始互联网协议地址或结束互联网协议地址中的第一个出现数值与彼此不同的段,并将该第一个出现数值与彼此不同的段确定为所述目标地区编号对应的目标段;以及,从所述目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中的倒数第一段开始,应用所述目标段依次获取所述目标地区编号对应的全部的地址索引;
更新作为当前的目标地区编号的地区编号,并重新执行所述地址索引的获取步骤,直至获取得到各个所述地区编号各自对应的至少一个地址索引。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的基于互联网协议地址的地区查找方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的基于互联网协议地址的地区查找方法的步骤。
由上述技术方案可知,本申请提供的基于互联网协议地址的地区查找方法及装置,其中的方法包括:接收包含有目标互联网协议地址的地区查找指令;将目标互联网协议地址转化为预设长整型的数值格式,得到对应的目标字符串;应用二分查找法在第一有序三维数组中查找匹配的地区编号,或在哈希表中查找匹配的地区编号;第一有序三维数组存有各个互联网协议地址各自对应的字符串与地区编号之间的对应关系;哈希表存有各个互联网协议地址对应的索引与地区编号之间的对应关系;输出目标字符串匹配的地区编号以根据该地区编号确定目标互联网协议地址所在的地区,能够有效提高应用IP地址查找对应地区的效率,且查找过程可靠性高,查找结果准确性高,进而能够有效提高对IP地址进行定位的效率和准确性,以及能够有效提高根据定位结果进行反洗钱或者反欺诈等风险监控的效率和准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的基于互联网协议地址的地区查找装置的架构示意图。
图2为本申请实施例中的基于互联网协议地址的地区查找方法的流程示意图。
图3为本申请实施例中的基于互联网协议地址的地区查找方法中的步骤010和步骤020的流程示意图。
图4为本申请实施例中的基于互联网协议地址的地区查找方法中的步骤020的流程示意图。
图5为本申请实施例中的基于互联网协议地址的地区查找方法中的步骤021的流程示意图。
图6为本申请实施例中的基于互联网协议地址的地区查找方法中的步骤030和步骤040的流程示意图。
图7为本申请实施例中的基于互联网协议地址的地区查找方法中的步骤040的流程示意图。
图8为本申请实施例中的基于互联网协议地址的地区查找方法中的步骤041的流程示意图。
图9为本申请实施例中的基于互联网协议地址的地区查找方法中的步骤044的流程示意图。
图10为本申请实施例中的基于互联网协议地址的地区查找方法中的步骤045的流程示意图。
图11为本申请实施例中的基于互联网协议地址的地区查找装置的结构示意图。
图12为本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
考虑到现有的在金融行业的反洗钱或者反欺诈等风险监控过程中,时常会遇到根据交易IP来对比两个地点是否是同一个地点的问题。这时需要先根据IP查找到对应的地区,但每个地区会可能会有多个IP区间,而且这些区间往往又不是连续的。仅国外的IP区间就有64700个,如果逐个按顺序查找,效率是很低的,基本无法满足风险监控的实时性的要求,而查找地区这项功能通常又是很重要的,因此,本申请提供一种基于互联网协议地址的地区查找方法、基于互联网协议地址的地区查找装置、电子设备和计算机可读存储介质,通过接收地区查找指令,其中,该地区查找指令中包含有目标互联网协议地址;将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串;应用二分查找法在预设的第一有序三维数组中查找与所述目标字符串匹配的地区编号,或者,在预设的哈希表中查找与所述目标字符串匹配的地区编号;
其中,所述11存储有各个互联网协议地址各自对应的字符串与地区编号之间的对应关系;所述哈希表中存储有各个所述互联网协议地址对应的索引与地区编号之间的对应关系;输出所述目标字符串匹配的地区编号以根据该地区编号确定所述目标互联网协议地址所在的地区,能够有效提高应用IP地址查找对应地区的效率,且查找过程可靠性高,查找结果准确性高,进而能够有效提高对IP地址进行定位的效率和准确性,以及能够有效提高根据定位结果进行反洗钱或者反欺诈等风险监控的效率和准确性。
针对上述内容,本申请实施例提供一种用于实现基于互联网协议地址的地区查找方法的基于互联网协议地址的地区查找装置,所述基于互联网协议地址的地区查找装置可以为一种服务器01,参见图1,所述服务器01可以至少一个用于提供相关数据的数据库02之间通信连接,还可以与至少一个客户端设备03之间通信连接。
基于上述内容,所述服务器01可以在线从客户端设备03接收包含有目标互联网协议地址的地区查找指令,而后所述服务器01将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串,服务器01可以在线从数据库02获取对应的第一有序三维数组,应用二分查找法在预设的第一有序三维数组中查找与所述目标字符串匹配的地区编号,或者,在预设的哈希表中查找与所述目标字符串匹配的地区编号;其中,所述第一有序三维数组中存储有各个互联网协议地址各自对应的字符串与地区编号之间的对应关系;所述哈希表中存储有各个所述互联网协议地址对应的索引与地区编号之间的对应关系;而后,服务器01将所述目标字符串匹配的地区编号发送至所述客户端02,客户端02再根据该地区编号确定所述目标互联网协议地址所在的地区。
在此基础上,所述客户端02根据该地区编号确定所述目标互联网协议地址所在的地区后,比较目标用户在预设时段内的各个目标互联网协议地址是否均在同一地区内,或者该各个目标互联网协议地址是否均在在同一个国家的各个地区中,并根据比较结果应用预设的反洗钱或者反欺诈等风险监控模型判断该目标用户是否发生反洗钱或者反欺诈等行为。
可以理解的是,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,基于互联网协议地址的地区查找的部分可以在如上述内容所述的服务器侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
所述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
为了能够有效提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,本申请提供一种执行主体可以为前述的服务器或者客户端的基于互联网协议地址的地区查找方法的实施例,参见图2,所述基于互联网协议地址的地区查找方法具体包含有如下内容:
步骤100:接收地区查找指令,其中,该地区查找指令中包含有目标互联网协议地址。
步骤200:将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串;
步骤300:应用二分查找法在预设的第一有序三维数组中查找与所述目标字符串匹配的地区编号,或者,在预设的哈希表中查找与所述目标字符串匹配的地区编号。
可以理解的是,所述第一有序三维数组中存储有各个互联网协议地址各自对应的字符串与地区编号之间的对应关系;所述哈希表中存储有各个所述互联网协议地址对应的索引与地区编号之间的对应关系。
步骤400:输出所述目标字符串匹配的地区编号以根据该地区编号确定所述目标互联网协议地址所在的地区。
为了提高第一有序三维数组的应用可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找方法的一个实施例中,参见图3,在所述基于互联网协议地址的地区查找方法的步骤100之前,还具体包含有如下内容:
步骤010:获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址。
步骤020:应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的第一有序三维数组。
为了有效提高互联网协议地址的获取准确性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找方法的一个实施例中,参见图4,所述步骤020具体包含有如下内容:
步骤021:根据预设的第一字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串。
步骤022:确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
步骤023:按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第一有序三维数组。
可以理解的是,所述第一有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
为了有效提高字符串转换的准确性和可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找方法的一个实施例中,参见图5,所述步骤021具体包含有如下内容:
步骤0211:应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串。
步骤0212:删掉各个所述十二位字符串中的各个分隔点。
步骤0213:在以0开头的各个所述十二位字符串中,删除在第一个非0的数字之前出现的0,得到各个所述互联网协议地址各自对应的字符串。
为了提高哈希表的应用可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找方法的一个实施例中,参见图6,在所述基于互联网协议地址的地区查找方法的步骤100之前,还具体包含有如下内容:
步骤030:获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址。
步骤040:应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的哈希表。
为了提高哈希表的获取效率和准确性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找方法的一个实施例中,参见图7,所述步骤040具体包含有如下内容:
步骤041:根据预设的第二字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串。
步骤042:确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
步骤043:按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第二有序三维数组。
可以理解的是,所述第二有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
步骤044:将所述第二有序三维数组中的各个所述字符串均转化为对应的数字段,其中,所述数字段由四段数字组成,且每段中的数字小于或等于三位数。
步骤045:应用所述数字段,根据预设的索引建立规则生成各个所述地区编号各自对应的至少一个地址索引,并生成包含有各个所述索引的哈希表。
为了有效提高字符串转换的准确性和可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找方法的一个实施例中,参见图8,所述步骤041具体包含有如下内容:
步骤0411:应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串。
步骤0412:删掉各个所述十二位字符串中的各个分隔点。
为了有效提高数字段转换的可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找方法的一个实施例中,参见图9,所述步骤044具体包含有如下内容:
步骤0441:将所述第二有序三维数组中的各个所述十二位字符串划分为四个段,且每个段中均包含有三个数字。
步骤0442:将每段中以0开头的三位数中,删除在第一个非0的数字之前出现的0,且若存在全部为0的段,则保留其中一个0,以得到各个所述十二位字符串分别对应的数字段。
为了有效提高哈希表的应用可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找方法的一个实施例中,参见图10,所述步骤045具体包含有如下内容:
步骤0451:选择一地区编号作为当前的目标地区编号。
步骤0452:执行地址索引的获取步骤:在目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中,以从左向右的顺序选取起始互联网协议地址或结束互联网协议地址中的第一个出现数值与彼此不同的段,并将该第一个出现数值与彼此不同的段确定为所述目标地区编号对应的目标段;以及,从所述目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中的倒数第一段开始,应用所述目标段依次获取所述目标地区编号对应的全部的地址索引;
步骤0453:更新作为当前的目标地区编号的地区编号,并重新执行所述地址索引的获取步骤,直至获取得到各个所述地区编号各自对应的至少一个地址索引。
为了进一步说明本方案,本申请还提供一种应用二分法查找互联网协议地址对应的地区编号的方法的具体应用实例,具体包含有如下内容:
(一)首先将IP转化为长整型的数值格式。转化方式为对不足3位数的IP段补齐3位,然后去掉中间的“.”,对于以0开头的予以省略处理。例如:“192.168.0.1”的IP转换后为192168000001、“84.232.79.91”转换后为84232079091。
(二)将转化后的IP区间从小到大排序,存入一个长度为n的有序3维数组。3个维度分别表示起始IP、结束IP和地区编号如表1所示:
表1
起始IP 结束IP 地区编号
1011000000 1011255255 410
1016000000 1019255255 410
1020000000 1020255255 764
1021000000 1021255255 392
1022000000 1023255255 356
(三)用二分查找的思想对任意IP进行查找。查找步骤如下:
S1:判断其是否属于有序数组中间的那个IP区间:
如果属于就返回中间IP段对应的地区。
否则执行S2和S3:
S2:如果大于中间IP段的结束IP,则截取数组的后半段为新数组;
S3:如果小于中间IP段的起始IP,则截取数组的前半段为新数组;
从得到的新数组中重复以上查找操作。
通过这种方法进行查找每次可以缩小一半的查找空间,时间复杂度(最多查询次数)为O(log2(n)),在n=64700个IP段的情况下下,最多查找16次,就可以找到所在地区。基本可以达到实时性要求。
为了进一步的说明上述方案,本申请还提供一种应用哈希查找方式获取目标IP对应的地区编号的具体应用实例,具体内容如下:
1.将IP转化为字符串。转化规则为:对不足3位数的IP段补齐3位,然后去掉中间的“.”。
2.通过从左往右合理地截取字符串,最小化地建立索引,存入HASH表(键为截取的IP字符串,值为地区)。这种方法的时间复杂度(查找次数)为O(1)。其难点在于如何最小化建立索引,如果不截取字符串,对每一个完整IP建立索引,那么空间占有将是大得惊人的255的四次方。
最小化索引的方法是合理截取字符串。例如表2:
表2
起始IP 结束IP 地区编号
001011000000 001011255255 410
可以截取字符前六位建立索引为“001011”对应值为“410”,这就减少了255*255-1个索引,对于前六位为“001011”的IP不管后面是什么值,它一定是“410”这个地区的IP。但实际情况往往复杂得多,很多IP段并不是像0-255这样取满整个值域。例如表3:
表3
起始IP 结束IP 地区编号
023002137101 023004092007 840
这种要拆出若干个不同长度的索引。如:
“023003”,可保证前六位为“023003”的一定属于地区“840”“023002138”,也可保证前九位为“023002138”的一定属于“840”;但不能是“023002137”,因为前六位为“023002137”的未必是地区“840”,比如“023002137100”。算法的思路是最小化的建立索引个数,但这些索引可以将所有属于该地区的IP映射正确。
具体的建索引的算法如下。
先将起始IP和结束IP按每三位一段拆分为四段,用数字存储。如:
将上表中的“023002137101”存储为[23,2,137,101];“023004092007”存储为[23,4,92,7]。
比较两个IP从第几段开始不同,例表中为第二段:2≠4。然后使用如下算法生成这条IP段的所有索引(数量最少且能包含所有情况),具体如下表4所示:
表4
Figure GDA0003747994930000161
其中,上述应用哈希查找方式获取目标IP对应的地区编号的应用实例对应的具体举例如下:
(一)格式转换
将各个地区编号对应的各个IP均转化为对应的字符串。转化规则为:对不足3位数的IP段补齐3位,然后去掉中间的“.”。
(二)有序存储
将转化为对应的字符串的IP各个地区编号按照数值从小到大的顺序进行排序,并将排序后的各个转化为对应的字符串的IP进行存储。
(三)数字段的转换
S1:将转化为对应的字符串的IP按每三位一段拆分为四段,并将每段中位于数字前的0删除,并用数字段进行存储,为了描述方便,数字段在后续简称为:段。
S2:选择一地区编号作为当前的目标地区编号,可以从第一个地区编号CODE1开始选取,其中,所述第一个地区编号CODE1对应的起始IP的各段字节标识为的A1-1、B1-1、C1-1和D1-1;所述第一个地区编号CODE1对应的结束IP中的各段字节A1-2、B1-2、C1-2和D1-2。
S3:确定目标地区编号中的起始IP的各段字节A1-1至D1-1中与结束IP中的各段字节A1-2至D1-2中数值不同的字节,并以从左向右的顺序选取起始IP或结束IP中第一个出现不同数值的段,并将其定义为所述目标地区编号中的起始IP和结束IP共同的目标段T1-12。
(四)建立索引
S1:判断目标地区编号对应的起始IP的当前段(第四段D1-1)和结束IP中的当前段(第四段D1-2)是否为所述目标段;
若是,则说明所述目标地区编号对应的起始IP和结束IP的前三段中的数值均相同,且由于起始IP和结束IP均为按照数值有小到大的顺序排列,因此可以认为起始IP的当前段(第四段D1-1)中的数值比结束IP中的当前段(第四段D1-2)中的数值小,并执行步骤S2;
若否,且目标地区编号对应的起始IP的第三段C1-1和结束IP中的第三段C1-2为所述目标段,则执行步骤S5;
若否,且目标地区编号对应的起始IP的第二段B1-1和结束IP中的第二段B1-2为所述目标段,则执行步骤S13;
S2:判断所述目标地区编号对应的起始IP的当前段(第四段D1-1)的数值是否不等于0,且所述结束IP中的当前段(第四段D1-2)的数值是否不等于255;
若所述目标地区编号对应的起始IP的当前段(第四段D1-1)的数值不为0的同时,满足所述结束IP中的当前段(第四段D1-2)的数值不等于255,则执行S3;
若所述目标地区编号对应的起始IP的当前段(第四段D1-1)的数值为0,且所述结束IP中的当前段(第四段D1-2)的数值等于255,则执行S4。
S3:将所述目标地区编号对应的起始IP的当前段(第四段D1-1)与结束IP中的当前段(第四段D1-2)中的全部数值对应的包含有全部四段的四段IP段均作为当前目标地区编号的IP索引。
例如,若当前目标地区编号的起始IP对应的四段为[23.2.137.101],结束IP中的四段为[23.2.137.137],则将[23.2.137.101]、[23.2.137.102]…[23.2.137.137]均作为当前目标地区编号的IP索引。
S4:将所述目标地区编号对应的起始IP的当前段(第四段D1-1)和结束IP中的当前段(第四段D1-2)均删除,并将剩余的起始IP或者结束IP中的包含有前三段的三段IP段作为当前目标地区编号的IP索引。
例如,若当前目标地区编号的起始IP对应的四段为[23.2.137.0],结束IP中的四段为[23.2.137.255],则将[23.2.137]作为当前目标地区编号的IP索引。
S5:判断所述目标地区编号对应的起始IP的当前段(第四段D1-1)的数值以及结束IP中的当前段(第四段D1-2)的数值分别与0和255之间的大小关系;
若所述目标地区编号对应的起始IP的当前段(第四段D1-1)的数值不为0且小于255,且若所述目标地区编号对应的结束IP的当前段(第四段D1-2)的数值不为255且不为0,则执行S6;
若所述目标地区编号对应的起始IP的当前段(第四段D1-1)的数值为0,且若所述目标地区编号对应的结束IP的当前段(第四段D1-2)的数值为255,则执行S10;
若所述目标地区编号对应的起始IP的当前段(第四段D1-1)的数值为255,且若所述目标地区编号对应的结束IP的当前段(第四段D1-2)的数值也为255,则执行S11;
若所述目标地区编号对应的起始IP的当前段(第四段D1-1)的数值为0,且若所述目标地区编号对应的结束IP的当前段(第四段D1-2)的数值也为0,则执行S12;
S6:对所述目标地区编号对应的起始IP的当前段(第四段D1-1)的当前数值到255之间的数值对应的包含有全部四段的四段IP段均作为当前目标地区编号的第一IP索引子组,并执行S7。
例如,若当前目标地区编号的起始IP对应的四段为[23.2.24.101],则将[23.2.24.101]、[23.2.24.102]……[23.2.24.255]作为当前目标地区编号的第一IP索引子组。
S7:对所述目标地区编号对应的结束IP的当前段(第四段D1-2)的0至当前数值之间的数值对应的包含有全部四段的四段IP段均作为当前目标地区编号的第二IP索引子组,而后执行S8。
例如,若当前目标地区编号的结束IP中的四段为[23.2.127.137],则将[23.2.127.0]、[23.2.127.2]……[23.2.127.137]作为当前目标地区编号的第二IP索引子组。
S8:删除所述起始IP的当前段(第四段D1-1)和结束IP中的当前段(第四段D1-2),并对所述目标地区编号对应的起始IP的当前段(第四段D1-1)的前一段(也就是第三段C1-1)的数值加1后,得到对应的包含有第一至第三段的起始三段IP段,以及,将所述目标地区编号对应的结束IP中的当前段(第四段D1-2)的前一段的数值减1后,得到对应的包含有第一至第三段的结束三段IP段,而后,将包含有所述起始三段IP段至结束三段IP段的全部三段IP段均作为当前目标地区编号的第三IP索引子组,而后执行S9。
例如,若当前目标地区编号的起始IP对应的四段为[23.2.24.101],结束IP中的四段为[23.2.127.137],且第一IP索引子组为[23.2.24.101]、[23.2.24.102]……[23.2.24.255],第二IP索引子组为[23.2.127.0]、[23.2.127.1]……[23.2.127.137],则当前目标地区编号的第三IP索引子组为[23.2.25]、[23.2.26]…[23.2.24.126]。
S9:将S7至S8中的第一IP索引子组、第二IP索引子组和第三IP索引子组组成当前的目标地区编号对应的IP索引。
例如,若当前目标地区编号的起始IP对应的四段为[23.2.24.101],结束IP中的第四段为[23.2.127.137],且第一IP索引子组为[23.2.24.101]、[23.2.24.102]……[23.2.24.255],第二IP索引子组为[23.2.127.0]、[23.2.127.1]……[23.2.127.137],第三IP索引子组为[23.2.25]、[23.2.26]…[23.2.126],则当前目标地区编号对应的IP索引如表5所示。
表5
Figure GDA0003747994930000191
S10:删除所述起始IP的当前段(第四段D1-1)和结束IP中的当前段(第四段D1-2),生成包含有起始IP的第一至第三段的起始三段IP段,以及,生成包含有结束IP的第一至第三段的结束三段IP段,而后,将包含有所述起始三段IP段至结束三段IP段的全部三段IP段均作为当前目标地区编号的IP索引。
例如,若当前目标地区编号的起始IP对应的四段为[23.2.24.0],结束IP中的四段为[23.2.127.255],则当前目标地区编号对应的IP索引为[23.2.24]、[23.2.25]…[23.2.127]。
S11:将所述起始IP的当前段(第四段D1-1)对应的四段IP段作为当前目标地区编号的IP索引之一,并删除所述起始IP的当前段(第四段D1-1)和结束IP中的当前段(第四段D1-2),并对所述目标地区编号对应的起始IP的当前段(第四段D1-1)的前一段(也就是第三段C1-1)的数值加1后,得到对应的包含有第一至第三段的起始三段IP段,以及,将所述目标地区编号对应的结束IP的第一至第三段的结束三段IP段,而后,将包含有所述四段IP段、起始三段IP段至结束三段IP段的全部三段IP段均作为当前目标地区编号的IP索引。
例如,若当前目标地区编号的起始IP对应的四段为[23.2.24.255],结束IP中的四段为[23.2.127.255],则当前目标地区编号对应的IP索引为[23.2.24.255],还包括[23.2.25]、[23.2.26]…[23.2.127]。
S12:将所述结束IP中的当前段(第四段D1-2)对应的四段IP段作为当前目标地区编号的IP索引之一,并删除所述起始IP的当前段(第四段D1-1)和结束IP中的当前段(第四段D1-2),并得到起始IP的对应的包含有第一至第三段的起始三段IP段,以及,对所述目标地区编号对应的结束IP的当前段(第四段D1-2)的前一段(也就是第三段C1-1)的数值减1后,得到对应的结束IP的第一至第三段的结束三段IP段,而后,将包含有所述四段IP段、起始三段IP段至结束三段IP段的全部三段IP段均作为当前目标地区编号的IP索引。
例如,若当前目标地区编号的起始IP对应的四段为[23.2.24.0],结束IP中的四段为[23.2.127.0],则当前目标地区编号对应的IP索引为[23.2.127.0],还包括[23.2.24]、[23.2.25]…[23.2.126]。
S13:判断所述目标地区编号对应的起始IP的当前段(第四段D1-1)的数值以及结束IP中的当前段(第四段D1-2)的数值分别与0和255之间的大小关系;
若所述目标地区编号对应的起始IP的当前段(第四段D1-1)的数值不为0且小于255,且若所述目标地区编号对应的结束IP的当前段(第四段D1-2)的数值不为255且不为0,则执行S14;
S14:对所述目标地区编号对应的起始IP的当前段(第四段D1-1)的当前数值到255之间的数值对应的包含有全部四段的四段IP段均作为当前目标地区编号的第一IP索引子组,并执行S15。
例如,若当前目标地区编号的起始IP对应的四段为[23.2.24.101],则将[23.2.24.101]、[23.2.24.102]……[23.2.24.255]作为当前目标地区编号的第一IP索引子组。
S15:对所述目标地区编号对应的结束IP的当前段(第四段D1-2)的0至当前数值之间的数值对应的包含有全部四段的四段IP段均作为当前目标地区编号的第二IP索引子组,而后执行S16。
例如,若当前目标地区编号的结束IP中的四段为[23.14.127.137],则将[23.14.127.0]、[23.14.127.2]……[23.14.127.137]作为当前目标地区编号的第二IP索引子组。
S16:删除所述起始IP的当前段(第四段D1-1)和结束IP中的当前段(第四段D1-2),并对所述目标地区编号对应的起始IP的当前段(第四段D1-1)的前一段(也就是第三段C1-1)的数值加1,得到对应的包含有第一至第三段的起始三段IP段,以及,将所述目标地区编号对应的结束IP中的当前段(第四段D1-2)的前一段的数值减1后,得到对应的包含有第一至第三段的结束三段IP段,而后,将起始三段IP段和结束三段IP段组成新的起始IP和结束IP,此时,新的起始IP和结束IP均只包含有第一段至第三段的内容,而后对所述新的起始IP和结束IP执行前述步骤S6至S12的内容,即将前述的初始IP的当前段替换为第三段C1-1,并将前述的结束IP的当前段替换为第三段C1-2。
例如,若当前目标地区编号的起始IP对应的四段为[23.2.24.101],结束IP中的四段为[23.2.127.137],且第一IP索引子组为[23.2.24.101]、[23.2.24.102]……[23.2.24.255],第二IP索引子组为[23.14.127.0]、[23.14.127.1]……[23.14.127.137],则当前目标地区编号的新的起始IP为[23.2.25],和新的结束IP为[23.14.126];而后进一步判断[23.2.25]和[23.14.126]中给的最后一位均不为0或255,则获取新的起始IP的第一IP索引子组为[23.2.25]、[23.2.26]…[23.2.255];所述结束IP的第二IP索引子组为[23.14.0]、[23.14.1]…[23.14.126],第三IP索引子组为[23.3]、[23.4]…[23.13]。
基于此,若所述目标地区编号的起始IP为[23.2.24.101],结束IP中的四段为[23.14.127.137],则当前目标地区编号对应的IP索引如表6所示。
表6
Figure GDA0003747994930000211
Figure GDA0003747994930000221
基于上述内容,相类似,若起始IP和结束IP中的各个段中的数值均不相同,虽然该种情形出现的可能性很小,但应用本申请的上述方式,依然可以对此类情形建立对应索引。
例如:若所述目标地区编号的起始IP为[23.2.24.101],结束IP中的四段为[28.14.127.137],则当前目标地区编号对应的IP索引如表7所示。
表7
Figure GDA0003747994930000222
(五)地区查找
根据前述建立的索引,应用哈希算法查找目标IP对应的地区编号。
从上述描述可知,本申请应用实例提供的基于互联网协议地址的地区查找方法,解决了在做反洗钱建模过程中遇到的IP查找地区问题。可以达到实时查找效果,同时内存占用也不大。1.大大缩短建模人员做特征工程时程序运行的等待时间,提高工作效率。可以达到瞬时效果,给事中预测提供可行性。3.这种方法同样适用于其他遇到类似问题的场景。
从软件层面来说,为了能够有效提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,本申请提供一种用于实现上述基于互联网协议地址的地区查找方法中全部或部分内容的基于互联网协议地址的地区查找装置的实施例,参见图11,所述基于互联网协议地址的地区查找装置具体包含有如下内容:
指令接收模块10,用于接收地区查找指令,其中,该地区查找指令中包含有目标互联网协议地址。
字符串转换模块20,用于将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串。
地区编号查找模块30,用于应用二分查找法在预设的第一有序三维数组中查找与所述目标字符串匹配的地区编号,或者,在预设的哈希表中查找与所述目标字符串匹配的地区编号。
可以理解的是,所述第一有序三维数组中存储有各个互联网协议地址各自对应的字符串与地区编号之间的对应关系;所述哈希表中存储有各个所述互联网协议地址对应的索引与地区编号之间的对应关系。
编码输出模块40,用于输出所述目标字符串匹配的地区编号以根据该地区编号确定所述目标互联网协议地址所在的地区。
本申请实施例提供的基于互联网协议地址的地区查找装置的实施例具体可以用于执行上述实施例中的基于互联网协议地址的地区查找方法的实施例的处理流程,其功能在此不再赘述,可以参照上述基于互联网协议地址的地区查找方法实施例的详细描述。
从上述描述可知,本申请实施例提供的基于互联网协议地址的地区查找装置,能够有效提高应用IP地址查找对应地区的效率,且查找过程可靠性高,查找结果准确性高,进而能够有效提高对IP地址进行定位的效率和准确性,以及能够有效提高根据定位结果进行反洗钱或者反欺诈等风险监控的效率和准确性。
为了提高第一有序三维数组的应用可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找装置地一个实施例中,还具体包含有如下内容:
互联网协议地址获取模块,用于获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址。
第一有序三维数组生成模块,用于应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的第一有序三维数组。
为了有效提高互联网协议地址的获取准确性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找装置地一个实施例中,第一有序三维数组生成模块具体包含有如下内容:
第一字符串转换单元,用于根据预设的第一字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串。
第一字符串对应单元,用于确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
第一排序单元,用于按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第一有序三维数组。
可以理解的是,所述第一有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
为了有效提高字符串转换的准确性和可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找装置地一个实施例中,第一字符串转换单元具体用于执行如下内容:
应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串。
删掉各个所述十二位字符串中的各个分隔点。
在以0开头的各个所述十二位字符串中,删除在第一个非0的数字之前出现的0,得到各个所述互联网协议地址各自对应的字符串。
为了提高哈希表的应用可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找装置的一个实施例中,还具体包含有如下内容:
互联网协议地址获取模块,用于获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址。
哈希表生成模块,用于应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的哈希表。
为了提高哈希表的获取效率和准确性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找装置的一个实施例中,所述哈希表生成模块具体包含有如下内容:
第二字符串转换单元,用于根据预设的第二字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串。
第二字符串对应单元,用于确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
第二排序单元,用于按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第二有序三维数组。
可以理解的是,所述第二有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
数字段转化单元,用于将所述第二有序三维数组中的各个所述字符串均转化为对应的数字段,其中,所述数字段由四段数字组成,且每段中的数字小于或等于三位数。
地址索引建立单元,用于应用所述数字段,根据预设的索引建立规则生成各个所述地区编号各自对应的至少一个地址索引,并生成包含有各个所述索引的哈希表。
为了有效提高字符串转换的准确性和可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找装置的一个实施例中,所述第二字符串转换单元具体用于执行下述内容:
应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串。
删掉各个所述十二位字符串中的各个分隔点。
为了有效提高数字段转换的可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找装置的一个实施例中,所述数字段转化单元具体包含有如下内容:
将所述第二有序三维数组中的各个所述十二位字符串划分为四个段,且每个段中均包含有三个数字。
将每段中以0开头的三位数中,删除在第一个非0的数字之前出现的0,且若存在全部为0的段,则保留其中一个0,以得到各个所述十二位字符串分别对应的数字段。
为了有效提高哈希表的应用可靠性,以进一步提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,在本申请的基于互联网协议地址的地区查找装置的一个实施例中,所述地址索引建立单元具体用于执行下述内容:
选择一地区编号作为当前的目标地区编号。
执行地址索引的获取步骤:在目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中,以从左向右的顺序选取起始互联网协议地址或结束互联网协议地址中的第一个出现数值与彼此不同的段,并将该第一个出现数值与彼此不同的段确定为所述目标地区编号对应的目标段;以及,从所述目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中的倒数第一段开始,应用所述目标段依次获取所述目标地区编号对应的全部的地址索引。
更新作为当前的目标地区编号的地区编号,并重新执行所述地址索引的获取步骤,直至获取得到各个所述地区编号各自对应的至少一个地址索引。
从硬件层面来说,为了能够有效提高应用IP地址查找对应地区的效率,进而能够有效提高对IP地址进行定位的效率和准确性,本申请提供一种用于实现所述基于互联网协议地址的地区查找方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现基于互联网协议地址的地区查找装置、各类数据库以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例中的基于互联网协议地址的地区查找方法的实施例,以及,基于互联网协议地址的地区查找装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图12为本申请实施例的电子设备9600的***构成的示意框图。如图12所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图12是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,基于互联网协议地址的地区查找功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤100:接收地区查找指令,其中,该地区查找指令中包含有目标互联网协议地址。
步骤200:将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串;
步骤300:应用二分查找法在预设的第一有序三维数组中查找与所述目标字符串匹配的地区编号,或者,在预设的哈希表中查找与所述目标字符串匹配的地区编号。
可以理解的是,所述第一有序三维数组中存储有各个互联网协议地址各自对应的字符串与地区编号之间的对应关系;所述哈希表中存储有各个所述互联网协议地址对应的索引与地区编号之间的对应关系。
步骤400:输出所述目标字符串匹配的地区编号以根据该地区编号确定所述目标互联网协议地址所在的地区。
从上述描述可知,本申请的实施例提供的电子设备,能够有效提高应用IP地址查找对应地区的效率,且查找过程可靠性高,查找结果准确性高,进而能够有效提高对IP地址进行定位的效率和准确性,以及能够有效提高根据定位结果进行反洗钱或者反欺诈等风险监控的效率和准确性。
在另一个实施方式中,基于互联网协议地址的地区查找装置可以与中央处理器9100分开配置,例如可以将基于互联网协议地址的地区查找配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现基于互联网协议地址的地区查找功能。
如图12所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图12中所示的所有部件;此外,电子设备9600还可以包括图12中没有示出的部件,可以参考现有技术。
如图12所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的基于互联网协议地址的地区查找方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的基于互联网协议地址的地区查找方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:接收地区查找指令,其中,该地区查找指令中包含有目标互联网协议地址。
步骤200:将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串;
步骤300:应用二分查找法在预设的第一有序三维数组中查找与所述目标字符串匹配的地区编号,或者,在预设的哈希表中查找与所述目标字符串匹配的地区编号。
可以理解的是,所述第一有序三维数组中存储有各个互联网协议地址各自对应的字符串与地区编号之间的对应关系;所述哈希表中存储有各个所述互联网协议地址对应的索引与地区编号之间的对应关系。
步骤400:输出所述目标字符串匹配的地区编号以根据该地区编号确定所述目标互联网协议地址所在的地区。
从上述描述可知,本申请的实施例提供的计算机可读存储介质,能够有效提高应用IP地址查找对应地区的效率,且查找过程可靠性高,查找结果准确性高,进而能够有效提高对IP地址进行定位的效率和准确性,以及能够有效提高根据定位结果进行反洗钱或者反欺诈等风险监控的效率和准确性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种基于互联网协议地址的地区查找方法,其特征在于,包括:
接收地区查找指令,其中,该地区查找指令中包含有目标互联网协议地址;
将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串;
其中,所述将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串包括:对所述目标互联网协议地址的不足3位数的地址段补齐3位,并去掉中间的分隔点;所述目标互联网协议地址的以0开头的不足3位数的第一个地址段不补零;
在预设的哈希表中查找与所述目标字符串匹配的地区编号;
其中,所述哈希表中存储有各个所述互联网协议地址对应的索引与地区编号之间的对应关系;
输出所述目标字符串匹配的地区编号以根据该地区编号确定所述目标互联网协议地址所在的地区;
在所述接收地区查找指令之前,还包括:
获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址;
应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的哈希表;
所述应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的哈希表,包括:
根据预设的第二字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串;
确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第二有序三维数组;
其中,所述第二有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
将所述第二有序三维数组中的各个所述字符串均转化为对应的数字段,其中,所述数字段由四段数字组成,且每段中的数字小于或等于三位数;
应用所述数字段,根据预设的索引建立规则生成各个所述地区编号各自对应的至少一个地址索引,并生成包含有各个所述索引的哈希表;包括:选择一地区编号作为当前的目标地区编号;
执行地址索引的获取步骤:在目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中,以从左向右的顺序选取起始互联网协议地址或结束互联网协议地址中的第一个出现数值与彼此不同的段,并将该第一个出现数值与彼此不同的段确定为所述目标地区编号对应的目标段;以及,从所述目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中的倒数第一段开始,应用所述目标段依次获取所述目标地区编号对应的全部的地址索引;
更新作为当前的目标地区编号的地区编号,并重新执行所述地址索引的获取步骤,直至获取得到各个所述地区编号各自对应的至少一个地址索引;
所述预设的索引建立规则包括:
S1:从第四段开始倒序判断目标地区编号对应的起始互联网协议地址的当前段和结束互联网协议地址中的当前段是否为所述目标段;
若是,则执行步骤S2;
若否,且目标地区编号对应的起始互联网协议地址的第三段和结束互联网协议地址中的第三段为所述目标段,则执行步骤S5;
若否,且目标地区编号对应的起始互联网协议地址的第二段和结束互联网协议地址中的第二段为所述目标段,则执行步骤S13;
S2:判断所述目标地区编号对应的起始互联网协议地址的当前段的数值是否不等于0,且所述结束互联网协议地址中的当前段的数值是否不等于255;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值不为0的同时,满足所述结束互联网协议地址中的当前段的数值不等于255,则执行S3;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值为0,且所述结束互联网协议地址中的当前段的数值等于255,则执行S4;
S3:将所述目标地区编号对应的起始互联网协议地址的当前段与结束互联网协议地址中的当前段中的全部数值对应的包含有全部四段的四段互联网协议地址段均作为当前目标地区编号的互联网协议地址索引;
S4:将所述目标地区编号对应的起始互联网协议地址的当前段和结束互联网协议地址中的当前段均删除,并将剩余的起始互联网协议地址或者结束互联网协议地址中的包含有前三段的三段互联网协议地址段作为当前目标地区编号的互联网协议地址索引;
S5:判断所述目标地区编号对应的起始互联网协议地址的当前段的数值以及结束互联网协议地址中的当前段的数值分别与0和255之间的大小关系;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值不为0且小于255,且若所述目标地区编号对应的结束互联网协议地址的当前段的数值不为255且不为0,则执行S6;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值为0,且若所述目标地区编号对应的结束互联网协议地址的当前段的数值为255,则执行S10;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值为255,且若所述目标地区编号对应的结束互联网协议地址的当前段的数值也为255,则执行S11;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值为0,且若所述目标地区编号对应的结束互联网协议地址的当前段的数值也为0,则执行S12;
S6:对所述目标地区编号对应的起始互联网协议地址的当前段的当前数值到255之间的数值对应的包含有全部四段的四段互联网协议地址段均作为当前目标地区编号的第一互联网协议地址索引子组,并执行S7;
S7:对所述目标地区编号对应的结束互联网协议地址的当前段的0至当前数值之间的数值对应的包含有全部四段的四段互联网协议地址段均作为当前目标地区编号的第二互联网协议地址索引子组,而后执行S8;
S8:删除所述起始互联网协议地址的当前段和结束互联网协议地址中的当前段,并对所述目标地区编号对应的起始互联网协议地址的当前段的前一段的数值加1后,得到对应的包含有第一至第三段的起始三段互联网协议地址段,以及,将所述目标地区编号对应的结束互联网协议地址中的当前段的前一段的数值减1后,得到对应的包含有第一至第三段的结束三段互联网协议地址段,而后,将包含有所述起始三段互联网协议地址段至结束三段互联网协议地址段的全部三段互联网协议地址段均作为当前目标地区编号的第三互联网协议地址索引子组,而后执行S9;
S9:将S7至S8中的第一互联网协议地址索引子组、第二互联网协议地址索引子组和第三互联网协议地址索引子组组成当前的目标地区编号对应的互联网协议地址索引;
S10:删除所述起始互联网协议地址的当前段和结束互联网协议地址中的当前段,生成包含有起始互联网协议地址的第一至第三段的起始三段互联网协议地址段,以及,生成包含有结束互联网协议地址的第一至第三段的结束三段互联网协议地址段,而后,将包含有所述起始三段互联网协议地址段至结束三段互联网协议地址段的全部三段互联网协议地址段均作为当前目标地区编号的互联网协议地址索引;
S11:将所述起始互联网协议地址的当前段对应的四段互联网协议地址段作为当前目标地区编号的互联网协议地址索引之一,并删除所述起始互联网协议地址的当前段和结束互联网协议地址中的当前段,并对所述目标地区编号对应的起始互联网协议地址的当前段的前一段的数值加1后,得到对应的包含有第一至第三段的起始三段互联网协议地址段,以及,将所述目标地区编号对应的结束互联网协议地址的第一至第三段的结束三段互联网协议地址段,而后,将包含有所述四段互联网协议地址段、起始三段互联网协议地址段至结束三段互联网协议地址段的全部三段互联网协议地址段均作为当前目标地区编号的互联网协议地址索引;
S12:将所述结束互联网协议地址中的当前段对应的四段互联网协议地址段作为当前目标地区编号的互联网协议地址索引之一,并删除所述起始互联网协议地址的当前段和结束互联网协议地址中的当前段,并得到起始互联网协议地址的对应的包含有第一至第三段的起始三段互联网协议地址段,以及,对所述目标地区编号对应的结束互联网协议地址的当前段的前一段的数值减1后,得到对应的结束互联网协议地址的第一至第三段的结束三段互联网协议地址段,而后,将包含有所述四段互联网协议地址段、起始三段互联网协议地址段至结束三段互联网协议地址段的全部三段互联网协议地址段均作为当前目标地区编号的互联网协议地址索引;
S13:判断所述目标地区编号对应的起始互联网协议地址的当前段的数值以及结束互联网协议地址中的当前段的数值分别与0和255之间的大小关系;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值不为0且小于255,且若所述目标地区编号对应的结束互联网协议地址的当前段的数值不为255且不为0,则执行S14;
S14:对所述目标地区编号对应的起始互联网协议地址的当前段的当前数值到255之间的数值对应的包含有全部四段的四段互联网协议地址段均作为当前目标地区编号的第一互联网协议地址索引子组,并执行S15;
S15:对所述目标地区编号对应的结束互联网协议地址的当前段的0至当前数值之间的数值对应的包含有全部四段的四段互联网协议地址段均作为当前目标地区编号的第二互联网协议地址索引子组,而后执行S16;
S16:删除所述起始互联网协议地址的当前段和结束互联网协议地址中的当前段,并对所述目标地区编号对应的起始互联网协议地址的当前段的前一段的数值加1,得到对应的包含有第一至第三段的起始三段互联网协议地址段,以及,将所述目标地区编号对应的结束互联网协议地址中的当前段的前一段的数值减1后,得到对应的包含有第一至第三段的结束三段互联网协议地址段,而后,将起始三段互联网协议地址段和结束三段互联网协议地址段组成新的起始互联网协议地址和结束互联网协议地址,此时,新的起始互联网协议地址和结束互联网协议地址均只包含有第一段至第三段的内容,而后对所述新的起始互联网协议地址和结束互联网协议地址执行前述步骤S6至S12的内容。
2.根据权利要求1所述的基于互联网协议地址的地区查找方法,其特征在于,在所述接收地区查找指令之前,还包括:
获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址;
应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的第一有序三维数组。
3.根据权利要求2所述的基于互联网协议地址的地区查找方法,其特征在于,所述应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的第一有序三维数组,包括:
根据预设的第一字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串;
确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第一有序三维数组;
其中,所述第一有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
4.根据权利要求3所述的基于互联网协议地址的地区查找方法,其特征在于,所述根据预设的第一字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串,包括:
应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串;
删掉各个所述十二位字符串中的各个分隔点;
在以0开头的各个所述十二位字符串中,删除在第一个非0的数字之前出现的0,得到各个所述互联网协议地址各自对应的字符串。
5.根据权利要求1所述的基于互联网协议地址的地区查找方法,其特征在于,所述根据预设的第二字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串,包括:
应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串;
删掉各个所述十二位字符串中的各个分隔点。
6.根据权利要求5所述的基于互联网协议地址的地区查找方法,其特征在于,所述将所述第二有序三维数组中的各个所述字符串均转化为对应的数字段,包括:
将所述第二有序三维数组中的各个所述十二位字符串划分为四个段,且每个段中均包含有三个数字;
将每段中以0开头的三位数中,删除在第一个非0的数字之前出现的0,且若存在全部为0的段,则保留其中一个0,以得到各个所述十二位字符串分别对应的数字段。
7.一种基于互联网协议地址的地区查找装置,其特征在于,包括:
指令接收模块,用于接收地区查找指令,其中,该地区查找指令中包含有目标互联网协议地址;
字符串转换模块,用于将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串;
其中,所述将所述目标互联网协议地址转化为预设长整型的数值格式,得到所述目标互联网协议对应的目标字符串包括:对所述目标互联网协议地址的不足3位数的地址段补齐3位,并去掉中间的分隔点;所述目标互联网协议地址的以0开头的不足3位数的第一个地址段不补零;
地区编号查找模块,用于在预设的哈希表中查找与所述目标字符串匹配的地区编号;
其中,所述哈希表中存储有各个所述互联网协议地址对应的索引与地区编号之间的对应关系;
编码输出模块,用于输出所述目标字符串匹配的地区编号以根据该地区编号确定所述目标互联网协议地址所在的地区;
还包括:
互联网协议地址获取模块,用于获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址;
哈希表生成模块,用于应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的哈希表;
所述哈希表生成模块包括:
第二字符串转换单元,用于根据预设的第二字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串;
第二字符串对应单元,用于确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
第二排序单元,用于按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第二有序三维数组;
其中,所述第二有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
数字段转化单元,用于将所述第二有序三维数组中的各个所述字符串均转化为对应的数字段,其中,所述数字段由四段数字组成,且每段中的数字小于或等于三位数;
地址索引建立单元,用于应用所述数字段,根据预设的索引建立规则生成各个所述地区编号各自对应的至少一个地址索引,并生成包含有各个所述索引的哈希表;包括:选择一地区编号作为当前的目标地区编号;
执行地址索引的获取步骤:在目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中,以从左向右的顺序选取起始互联网协议地址或结束互联网协议地址中的第一个出现数值与彼此不同的段,并将该第一个出现数值与彼此不同的段确定为所述目标地区编号对应的目标段;以及,从所述目标地区编号对应的起始互联网协议地址和结束互联网协议地址各自对应的数字段中的倒数第一段开始,应用所述目标段依次获取所述目标地区编号对应的全部的地址索引;
更新作为当前的目标地区编号的地区编号,并重新执行所述地址索引的获取步骤,直至获取得到各个所述地区编号各自对应的至少一个地址索引;
所述预设的索引建立规则包括:
S1:从第四段开始倒序判断目标地区编号对应的起始互联网协议地址的当前段和结束互联网协议地址中的当前段是否为所述目标段;
若是,则执行步骤S2;
若否,且目标地区编号对应的起始互联网协议地址的第三段和结束互联网协议地址中的第三段为所述目标段,则执行步骤S5;
若否,且目标地区编号对应的起始互联网协议地址的第二段和结束互联网协议地址中的第二段为所述目标段,则执行步骤S13;
S2:判断所述目标地区编号对应的起始互联网协议地址的当前段的数值是否不等于0,且所述结束互联网协议地址中的当前段的数值是否不等于255;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值不为0的同时,满足所述结束互联网协议地址中的当前段的数值不等于255,则执行S3;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值为0,且所述结束互联网协议地址中的当前段的数值等于255,则执行S4;
S3:将所述目标地区编号对应的起始互联网协议地址的当前段与结束互联网协议地址中的当前段中的全部数值对应的包含有全部四段的四段互联网协议地址段均作为当前目标地区编号的互联网协议地址索引;
S4:将所述目标地区编号对应的起始互联网协议地址的当前段和结束互联网协议地址中的当前段均删除,并将剩余的起始互联网协议地址或者结束互联网协议地址中的包含有前三段的三段互联网协议地址段作为当前目标地区编号的互联网协议地址索引;
S5:判断所述目标地区编号对应的起始互联网协议地址的当前段的数值以及结束互联网协议地址中的当前段的数值分别与0和255之间的大小关系;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值不为0且小于255,且若所述目标地区编号对应的结束互联网协议地址的当前段的数值不为255且不为0,则执行S6;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值为0,且若所述目标地区编号对应的结束互联网协议地址的当前段的数值为255,则执行S10;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值为255,且若所述目标地区编号对应的结束互联网协议地址的当前段的数值也为255,则执行S11;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值为0,且若所述目标地区编号对应的结束互联网协议地址的当前段的数值也为0,则执行S12;
S6:对所述目标地区编号对应的起始互联网协议地址的当前段的当前数值到255之间的数值对应的包含有全部四段的四段互联网协议地址段均作为当前目标地区编号的第一互联网协议地址索引子组,并执行S7;
S7:对所述目标地区编号对应的结束互联网协议地址的当前段的0至当前数值之间的数值对应的包含有全部四段的四段互联网协议地址段均作为当前目标地区编号的第二互联网协议地址索引子组,而后执行S8;
S8:删除所述起始互联网协议地址的当前段和结束互联网协议地址中的当前段,并对所述目标地区编号对应的起始互联网协议地址的当前段的前一段的数值加1后,得到对应的包含有第一至第三段的起始三段互联网协议地址段,以及,将所述目标地区编号对应的结束互联网协议地址中的当前段的前一段的数值减1后,得到对应的包含有第一至第三段的结束三段互联网协议地址段,而后,将包含有所述起始三段互联网协议地址段至结束三段互联网协议地址段的全部三段互联网协议地址段均作为当前目标地区编号的第三互联网协议地址索引子组,而后执行S9;
S9:将S7至S8中的第一互联网协议地址索引子组、第二互联网协议地址索引子组和第三互联网协议地址索引子组组成当前的目标地区编号对应的互联网协议地址索引;
S10:删除所述起始互联网协议地址的当前段和结束互联网协议地址中的当前段,生成包含有起始互联网协议地址的第一至第三段的起始三段互联网协议地址段,以及,生成包含有结束互联网协议地址的第一至第三段的结束三段互联网协议地址段,而后,将包含有所述起始三段互联网协议地址段至结束三段互联网协议地址段的全部三段互联网协议地址段均作为当前目标地区编号的互联网协议地址索引;
S11:将所述起始互联网协议地址的当前段对应的四段互联网协议地址段作为当前目标地区编号的互联网协议地址索引之一,并删除所述起始互联网协议地址的当前段和结束互联网协议地址中的当前段,并对所述目标地区编号对应的起始互联网协议地址的当前段的前一段的数值加1后,得到对应的包含有第一至第三段的起始三段互联网协议地址段,以及,将所述目标地区编号对应的结束互联网协议地址的第一至第三段的结束三段互联网协议地址段,而后,将包含有所述四段互联网协议地址段、起始三段互联网协议地址段至结束三段互联网协议地址段的全部三段互联网协议地址段均作为当前目标地区编号的互联网协议地址索引;
S12:将所述结束互联网协议地址中的当前段对应的四段互联网协议地址段作为当前目标地区编号的互联网协议地址索引之一,并删除所述起始互联网协议地址的当前段和结束互联网协议地址中的当前段,并得到起始互联网协议地址的对应的包含有第一至第三段的起始三段互联网协议地址段,以及,对所述目标地区编号对应的结束互联网协议地址的当前段的前一段的数值减1后,得到对应的结束互联网协议地址的第一至第三段的结束三段互联网协议地址段,而后,将包含有所述四段互联网协议地址段、起始三段互联网协议地址段至结束三段互联网协议地址段的全部三段互联网协议地址段均作为当前目标地区编号的互联网协议地址索引;
S13:判断所述目标地区编号对应的起始互联网协议地址的当前段的数值以及结束互联网协议地址中的当前段的数值分别与0和255之间的大小关系;
若所述目标地区编号对应的起始互联网协议地址的当前段的数值不为0且小于255,且若所述目标地区编号对应的结束互联网协议地址的当前段的数值不为255且不为0,则执行S14;
S14:对所述目标地区编号对应的起始互联网协议地址的当前段的当前数值到255之间的数值对应的包含有全部四段的四段互联网协议地址段均作为当前目标地区编号的第一互联网协议地址索引子组,并执行S15;
S15:对所述目标地区编号对应的结束互联网协议地址的当前段的0至当前数值之间的数值对应的包含有全部四段的四段互联网协议地址段均作为当前目标地区编号的第二互联网协议地址索引子组,而后执行S16;
S16:删除所述起始互联网协议地址的当前段和结束互联网协议地址中的当前段,并对所述目标地区编号对应的起始互联网协议地址的当前段的前一段的数值加1,得到对应的包含有第一至第三段的起始三段互联网协议地址段,以及,将所述目标地区编号对应的结束互联网协议地址中的当前段的前一段的数值减1后,得到对应的包含有第一至第三段的结束三段互联网协议地址段,而后,将起始三段互联网协议地址段和结束三段互联网协议地址段组成新的起始互联网协议地址和结束互联网协议地址,此时,新的起始互联网协议地址和结束互联网协议地址均只包含有第一段至第三段的内容,而后对所述新的起始互联网协议地址和结束互联网协议地址执行前述步骤S6至S12的内容。
8.根据权利要求7所述的基于互联网协议地址的地区查找装置,其特征在于,还包括:
互联网协议地址获取模块,用于获取各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址;
第一有序三维数组生成模块,用于应用所述各个地区编号以及各个所述地区编号各自对应的至少一个互联网协议地址,生成对应的第一有序三维数组。
9.根据权利要求8所述的基于互联网协议地址的地区查找装置,其特征在于,所述第一有序三维数组生成模块包括:
第一字符串转换单元,用于根据预设的第一字符串转化规则,将各个所述互联网协议地址均转化为对应的字符串;
第一字符串对应单元,用于确定每一个地区编号对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串;
第一排序单元,用于按照数值由小到大的顺序,对各个所述起始互联网协议地址的字符串或各个所述结束互联网协议地址的字符串进行排序,并根据对应的排序结果生成对应的第一有序三维数组;
其中,所述第一有序三维数组中的每一行均存储有一个所述地区编号、该地区编号分别对应的起始互联网协议地址的字符串和结束互联网协议地址的字符串。
10.根据权利要求9所述的基于互联网协议地址的地区查找装置,其特征在于,所述第一字符串转换单元具体用于执行如下内容:
应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串;
删掉各个所述十二位字符串中的各个分隔点;
在以0开头的各个所述十二位字符串中,删除在第一个非0的数字之前出现的0,得到各个所述互联网协议地址各自对应的字符串。
11.根据权利要求7所述的基于互联网协议地址的地区查找装置,其特征在于,所述第二字符串转换单元具体用于执行下述内容:
应用在首个分隔点之后添加0的方式,将各个互联网协议地址中的每两个点之间的数字均添加为三位数,得到各个所述互联网协议地址各自对应的十二位字符串;
删掉各个所述十二位字符串中的各个分隔点。
12.根据权利要求11所述的基于互联网协议地址的地区查找装置,其特征在于,所述数字段转化单元具体用于执行下述内容:
将所述第二有序三维数组中的各个所述十二位字符串划分为四个段,且每个段中均包含有三个数字;
将每段中以0开头的三位数中,删除在第一个非0的数字之前出现的0,且若存在全部为0的段,则保留其中一个0,以得到各个所述十二位字符串分别对应的数字段。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一项所述的基于互联网协议地址的地区查找方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6任一项所述的基于互联网协议地址的地区查找方法的步骤。
CN201910688369.9A 2019-07-29 2019-07-29 基于互联网协议地址的地区查找方法及装置 Active CN110266834B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910688369.9A CN110266834B (zh) 2019-07-29 2019-07-29 基于互联网协议地址的地区查找方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910688369.9A CN110266834B (zh) 2019-07-29 2019-07-29 基于互联网协议地址的地区查找方法及装置

Publications (2)

Publication Number Publication Date
CN110266834A CN110266834A (zh) 2019-09-20
CN110266834B true CN110266834B (zh) 2022-08-26

Family

ID=67912341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910688369.9A Active CN110266834B (zh) 2019-07-29 2019-07-29 基于互联网协议地址的地区查找方法及装置

Country Status (1)

Country Link
CN (1) CN110266834B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112671948A (zh) * 2020-12-28 2021-04-16 北京锐安科技有限公司 Ip地址所属区域的确定方法、装置、电子设备及存储介质
CN117278521B (zh) * 2023-11-16 2024-03-19 烽台科技(北京)有限公司 资产认定方法和计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104796437A (zh) * 2014-01-16 2015-07-22 深圳市快播科技有限公司 基于Nginx的地理位置信息查询方法、装置及***
CN107613043A (zh) * 2017-09-26 2018-01-19 小草数语(北京)科技有限公司 Ip地址的地域信息搜索方法及其装置
CN107682466A (zh) * 2017-09-26 2018-02-09 小草数语(北京)科技有限公司 Ip地址的地域信息搜索方法及其装置
CN108712519A (zh) * 2018-05-31 2018-10-26 康键信息技术(深圳)有限公司 Ip地址的定位方法、装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2974434A4 (en) * 2013-03-15 2016-11-02 Factual Inc APPARATUS, SYSTEMS AND METHODS FOR ANALYZING MOVEMENTS OF TARGET ENTITIES

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104796437A (zh) * 2014-01-16 2015-07-22 深圳市快播科技有限公司 基于Nginx的地理位置信息查询方法、装置及***
CN107613043A (zh) * 2017-09-26 2018-01-19 小草数语(北京)科技有限公司 Ip地址的地域信息搜索方法及其装置
CN107682466A (zh) * 2017-09-26 2018-02-09 小草数语(北京)科技有限公司 Ip地址的地域信息搜索方法及其装置
CN108712519A (zh) * 2018-05-31 2018-10-26 康键信息技术(深圳)有限公司 Ip地址的定位方法、装置及存储介质

Also Published As

Publication number Publication date
CN110266834A (zh) 2019-09-20

Similar Documents

Publication Publication Date Title
JP6594988B2 (ja) 住所テキストを処理する方法及び機器
CN102246165B (zh) 利用压缩梯度直方图来代表和标识特征描述符的方法和装置
US9719790B2 (en) Mapping uncertain geometries to graticules
US8838550B1 (en) Readable text-based compression of resource identifiers
CN111553670B (zh) 一种交易处理方法、装置及计算机可读存储介质
AU2019101559A4 (en) Method and apparatus for generating random character string
CN112449009B (zh) 一种基于svd的联邦学习推荐***通信压缩方法及装置
CN108733317B (zh) 数据存储方法和装置
CN110266834B (zh) 基于互联网协议地址的地区查找方法及装置
CN111629081A (zh) 互联网协议ip地址数据处理方法、装置及电子设备
US9602129B2 (en) Compactly storing geodetic points
KR20090097057A (ko) 메쉬 모델로 구현된 3차원 데이터의 연결정보를 부호화 및복호화 방법
CN112784112A (zh) 报文校验方法及装置
CN114818000A (zh) 隐私保护的集合混淆求交方法、***及相关设备
CN108334481A (zh) 文档处理方法以及装置
CN114153856A (zh) 主机数据双写方法及装置
CN107943981A (zh) HBase行分页方法、服务器及计算机可读存储介质
CN113157695B (zh) 数据处理方法、装置、可读介质及电子设备
CN113935069B (zh) 一种基于区块链的数据验证方法、装置、设备及存储介质
CN105991400B (zh) 一种群组搜索方法及其设备
CN110545107B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN113094454A (zh) 一种地图数据搜索方法及装置
CN111179376B (zh) 流程节点图生成方法,装置,存储介质及电子设备
CN110727442B (zh) 用于嵌入式平台数据存储优化方法及***
CN113849705A (zh) 大体量数据检索方法、***和存储介质

Legal Events

Date Code Title Description
PB01 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