CN103177000A - Ip地址或者手机号码的分组方法和归属地的查询方法 - Google Patents

Ip地址或者手机号码的分组方法和归属地的查询方法 Download PDF

Info

Publication number
CN103177000A
CN103177000A CN2011104328971A CN201110432897A CN103177000A CN 103177000 A CN103177000 A CN 103177000A CN 2011104328971 A CN2011104328971 A CN 2011104328971A CN 201110432897 A CN201110432897 A CN 201110432897A CN 103177000 A CN103177000 A CN 103177000A
Authority
CN
China
Prior art keywords
address
array
integer
integer numeral
ownership place
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.)
Granted
Application number
CN2011104328971A
Other languages
English (en)
Other versions
CN103177000B (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.)
Aspire Digital Technologies Shenzhen Co Ltd
Original Assignee
Aspire Digital Technologies Shenzhen Co Ltd
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 Aspire Digital Technologies Shenzhen Co Ltd filed Critical Aspire Digital Technologies Shenzhen Co Ltd
Priority to CN201110432897.1A priority Critical patent/CN103177000B/zh
Publication of CN103177000A publication Critical patent/CN103177000A/zh
Application granted granted Critical
Publication of CN103177000B publication Critical patent/CN103177000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种IP地址或者手机号码的分组方法和归属地的查询方法,分组方法包括步骤:首先根据归属地对IP地址或者手机号码进行分组,然后将每组中的IP地址或者手机号码转换成整型数字并排序后存入数组;在根据本发明的分组方法对IP地址或者手机号码分组生成数组列表后,本发明的查询方法包括步骤:首先将请求查询的IP地址或者手机号码相应地转换成整型数字,然后利用二分法在数组列表中查询与之匹配的整型数字的位置,最后返回相应的归属地信息。本发明的分组和归属地的查询方法能够降低系统消耗、具有高并发处理能力、查询速度比数据库查询和内存查询更快且具备比内存分布式存储的对应关系查询更快的初始化时间。

Description

IP地址或者手机号码的分组方法和归属地的查询方法
技术领域
本发明涉及网络通信领域,更具体地说,涉及一种IP地址或者手机号码的分组方法和归属地的查询方法。
背景技术
电信运营商存在对IP地址和手机号码进行分组查询的需要。例如,查询IP地址的归属地和手机号码的归属地等。
现有的查询方法有两种:
第一种,将手机号码段、IP地址子网段与省份的对应关系保存在数据库中,查询时遍历数据库查询。
第二种,将手机号码段、IP地址子网段和省份的对应关系保存在分布式存储系统(Key-Value)的内存对应关系中,查询时直接以手机号码或者IP地址为主键(Key)进行查询。
其中,分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。
上述两种现有技术存在以下缺点:
首先,从数据库查询对系统资源消耗大,并发处理能力不高;
其次,虽然从内存中的Key-Value对应关系查询,系统消耗大幅度降低,处理能力也得到提高,但是对于大量数据的初始化(数据从数据库和文件加载到内存中)需要消耗一定时间,在此时间内,无法对外提供业务服务。
综上所述,需要提供一种能够降低系统消耗、具有高并发处理能力、查询速度比数据库查询和内存查询更快且具备比内存分布式存储(Key-Value)的对应关系查询更快的初始化时间的IP地址和手机号码的分组查询方法。
发明内容
本发明针对现有技术的上述缺陷,提供一种能够降低系统消耗、具有高并发处理能力、查询速度比数据库查询和内存查询更快且具备比内存分布式存储(Key-Value)的对应关系查询更快的初始化时间的IP地址和手机号码的分组查询方法。
本发明解决其技术问题所采用的技术方案为:提供一种IP地址的分组方法,包括以下步骤:
S110、根据归属地对数据库中的IP地址进行分组;
S120、将每组的IP地址转换为整型数字并按照数值自增进行排序;
S130、将每组中数值最小的整型数字作为IP地址的初始值并存入数组,对所述IP地址的初始值自增并与其相邻的整型数字比较;若相等,则继续对所述IP地址的初始值自增并与下一个整型数字比较;若不相等,则将与自增后的所述IP地址的初始值相等的最后一个整型数字存入数组;若没有与自增后的IP地址的初始值相等的整型数字,则将IP地址的初始值再次存入数组;
S140、将与步骤S130中自增后的所述IP地址的初始值不相等的第一个整型数字作为IP地址的下一个初始值,并相应地重复步骤S130中的过程;
S150、在每组IP地址转换成的整型数字中,重复步骤S130和步骤S140的过程直至完成所有整型数字的入数组处理;
对每组的整型数字相应地执行步骤S130至步骤S150的过程,以生成完整的数组列表,所述数组列表中的每一数组与归属地一一对应。
本发明的IP地址的分组方法,在步骤S120中,IP地址表达为:IP1.IP2.IP3.IP4,IP地址转换成的整型数字A=IP1*255*255+IP2*255+IP3。
本发明的IP地址的分组方法,步骤S11O中的所述归属地为省份或者是省份和城市。
提供一种IP地址归属地的查询方法,包括以下步骤:
S100、根据本发明的IP地址的分组方法对数据库中的IP地址进行分组并生成数组列表;
S210、将请求查询归属地的IP地址转换为整型数字;
S220、在所述数组列表中用二分法逐组查询与请求查询归属地的IP地址转换成的整型数字匹配的整型数字的位置;
S230、若查询成功,则输出相应的归属地信息;若查询失败,则输出失败信息。
本发明的IP地址归属地的查询方法,请求查询归属地的IP地址表达为:IP1’.IP2’.IP3’.IP4’,请求查询归属地的IP地址转换成的整型数字A’=IP1’*255*255+IP2’*255+IP3’。
本发明的IP地址归属地的查询方法,步骤S220还包括步骤:
S221:若查询到:当前查询位置的整型数字≤请求查询归属地的PI地址转换成的整型数字<当前查询位置加一的整型数字,判断当前查询位置上的整型数字与当前查询位置减一上的整型数字是否相同;相同,则返回当前查询位置减一的位置;不相同,则返回当前查询位置;
S222、判断返回的位置所对应的数组序号是偶数还是奇数;若为偶数,查询成功,返回相应的归属地信息;若为奇数,则在下一数组中进行步骤S221的操作;若在最后的数组中查询返回的位置所对应的数组序号为奇数,则返回失败信息;
在步骤S100与步骤S210之间,还包括步骤:
S201、检查数据库中IP地址与归属地的对应关系是否更新,是则进入步骤S203,否则进入S202;
S202、加载所述数组列表,进入步骤S210;
S203、从数据库读取更新的IP地址与归属地的对应关系,进入步骤S100。
提供一种手机号码的分组方法,包括以下步骤:
S310、根据归属地对数据库中的手机号码进行分组;
S320、将每组的手机号码取前7位作为整型数字并按照数值自增进行排序;
S330、将每组中数值最小的整型数字作为手机号码的初始值并存入数组,对所述手机号码的初始值自增并与其相邻的整型数字比较;若相等,则继续对所述手机号码的初始值自增并与下一个整型数字比较;若不相等,则将与自增后的所述手机号码的初始值相等的最后一个整型数字存入数组;若没有与自增后的手机号码的初始值相等的整型数字,则将手机号码的初始值再次存入数组;
S340、将与步骤S330中自增后的所述手机号码的初始值不相等的第一个整型数字作为手机号码的下一个初始值,并相应地重复步骤S330中的过程;
S350、在每组手机号码转换成的整型数字中,重复步骤S330和步骤S340的过程直至完成所有整型数字的入数组处理;
对每组的整型数字相应地执行步骤S330至步骤S350的过程,以生成完整的数组列表,所述数组列表中的每一数组与归属地一一对应。
本发明的手机号码的分组方法,步骤S310中的所述归属地为省份或者是省份和城市。
提供一种手机号码归属地的查询方法,包括以下步骤:
S400、根据本发明的手机号码的分组方法对数据库中的手机号码进行分组并生成数组列表;
S410、将请求查询归属地的手机号码取前7位作为整型数字;
S420、在所述数组列表中用二分法逐组查询与请求查询归属地的手机号码转换成的整型数字匹配的整型数字的位置;
S430、若查询成功,则输出相应的归属地信息;若查询失败,则输出失败信息。
本发明的手机号码归属地的查询方法,步骤S320还包括步骤:
S321:若查询到:当前查询位置的整型数字≤请求查询归属地的手机号码转换成的整型数字<当前查询位置加一的整型数字,判断当前查询位置上的整型数字与当前查询位置减一上的整型数字是否相同;相同,则返回当前查询位置减一的位置;不相同,则返回当前查询位置;
S322、判断返回的位置所对应的数组序号是偶数还是奇数;若为偶数,查询成功,返回相应的归属地信息;若为奇数,则在下一数组中进行步骤S321的操作;若在最后的数组中查询返回的位置所对应的数组序号为奇数,则返回失败信息;
在步骤S400与步骤S410之间,还包括步骤:
S401、检查数据库中手机号码与归属地的对应关系是否更新,是则进入步骤S403,否则进入S402;
S402、加载所述数组列表,进入步骤S410;
S403、从数据库读取更新的手机号码与归属地的对应关系,进入步骤S400。
本发明的IP地址的分组方法具有以下有益效果:通过把数据库中与归属地相对应的IP地址转换为整型数字并按照整型数字的数值自增进行排序,使得大量的IP地址能够保存到数组当中;再通过步骤S130至步骤S150生成数组列表,使得大量的IP地址能够得以简化并有序地保存在数组列表中。
本发明的IP地址归属地的查询方法具有以下有益效果:对本发明的IP地址的分组方法分组的IP地址进行归属地查询,以与分组方法中相同的方法将请求查询归属地的IP地址转换为整型数字,并利用二分法在数组列表中查询与其匹配的整型数字的位置以获取对应的归属地信息,使得本查询方法具有比数据库、内存主键查询更快的查询速度,且对系统资源消耗小。
另外,在本发明的IP地址归属地的查询方法,使用本发明的IP地址的分组方法对IP地址进行分组,生成的数组列表占系统资源少,使得本发明的IP地址归属地的查询方法在执行查询前的初始化速度比内存主键查询快。
本发明的手机号码的分组方法具有与本发明的IP地址的分组方法相应的有益效果,在此不再赘述。
本发明的手机号码归属地的查询方法具有与本发明的IP地址归属地的查询方法相应的有益效果,在此不再赘述。
附图说明
图1为本发明的IP地址的分组方法的第一实施例的流程图;
图2为本发明的IP地址归属地的查询方法的第一实施例的流程图;
图3为本发明的IP地址归属地的查询方法的第二实施例的流程图;
图4为本发明的IP地址或者手机号码的分组方法和归属地的查询方法的工作流程图。
具体实施方式
以下结合附图和实施例对本发明的IP地址或者手机号码的分组方法和归属地的查询方法作进一步的解释说明。
图1为本发明的IP地址的分组方法的第一实施例的流程图,如图1所示,在本实施例中,本发明的IP地址的分组方法包括以下步骤:
S110、根据归属地对数据库中的IP地址进行分组;
S120、将每组的IP地址转换为整型数字并按照数值自增进行排序;
S130、将每组中数值最小的整型数字作为IP地址的初始值并存入数组,对所述IP地址的初始值自增并与其相邻的整型数字比较;若相等,则继续对所述IP地址的初始值自增并与下一个整型数字比较;若不相等,则将与自增后的所述IP地址的初始值相等的最后一个整型数字存入数组;若没有与自增后的IP地址的初始值相等的整型数字,则将IP地址的初始值再次存入数组;
S140、将与步骤S130中自增后的所述IP地址的初始值不相等的第一个整型数字作为IP地址的下一个初始值,并相应地重复步骤S130中的过程;
S150、在每组IP地址转换成的整型数字中,重复步骤S130和步骤S140的过程直至完成所有整型数字的入数组处理;
对每组的整型数字相应地执行步骤S130至步骤S150的过程,以生成完整的数组列表,所述数组列表中的每一数组与归属地一一对应。
在本实施例中,在步骤S120中,IP地址表达为:IP1.IP2.IP3.IP4,IP地址转换成的整型数字A=IP1*255*255+IP2*255+IP3。在本发明的IP地址的分组方法的其它实施例中,根据入数组处理的需要,IP地址还可以通过其它的公式转换为整型数字A。
在本实施例中,步骤S110中的归属地为省份。在本发明的IP地址的分组方法的其它实施例中,步骤S110中的归属地还可以是省份和城市。
在本实施例中,预先在数据库中存储与省份对应的IP地址,这种对应关系是初级的对应关系。
在步骤S110中,将同一个省份下的IP地址分为一组;在步骤S120中,将每组中的IP地址根据A=IP1*255*255+IP2*255+IP3的表达式,转换为整型数字A,并且将所有整型数字A按照其数值自增进行排序;准备具有适当长度、空白的数组列表,例如,数组长度为1000位的数组列表,对于经上述分组处理后的一组IP地址的整型数字A进行步骤S130至S150的处理。应当注意的是,最后得到的一数组中,可能包括多个初始值:
Group001=[初始值1,最后一个与自增的初始值1相同的整型数字,初始值2,最后一个与自增的初始值2相同的整型数字,初始值3,...,最后一个与自增的初始值N相同的整型数字]。
对于数组Group001来说,其序号为:Group001=[0,1,2,3,...,n]。因此,通过本发明的IP地址的分组方法分组后得到的数组,0-1位是一个有效段,2-3位是一个有效段……所有偶数位为有效段的下限,奇数位为有效段的上限。
其中,若初始值1在数组中没有与其自增值相等的整型数字,则在数组序号为1的位置,将再次保存初始值1,此时的数组为:
Group001=[初始值1,初始值1,初始值2,最后一个与自增的初始值2相同的整型数字,初始值3,...,最后一个与自增的初始值N相同的整型数字]。
同理可得,其它位置的初始值在数组中没有与其自增值相等的整型数字时的情况。
图2为本发明的IP地址归属地的查询方法的第一实施例的流程图,如图2所示,在本实施例中,本发明的IP地址归属地的查询方法包括以下步骤:
S100、根据本发明的IP地址的分组方法的第一实施例对数据库中的IP地址进行分组并生成数组列表;
S210、将请求查询归属地的IP地址转换为整型数字;
S220、在数组列表中用二分法逐组查询与请求查询归属地的IP地址转换成的整型数字匹配的整型数字的位置;
S230、若查询成功,则输出相应的归属地信息;若查询失败,则输出失败信息。
在本实施例中,请求查询归属地的IP地址表达为:IP1’.IP2’.IP3’.IP4’,请求查询归属地的IP地址转换成的整型数字A’=IP1’*255*255+IP2’*255+IP3’。即请求查询归属地的IP地址采用与本发明的IP地址的分组方法的第一实施例中相同的方法转换成整型数字。在本发明的其它实施例中,可采用与其他的方法将IP地址转换成整型数字,但须与IP地址的分组方法中的转换整型数字的方法相同。
在本实施例中,二分法查找是一种现有算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。基本思想:假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。因此,在此不再对该方法进行展开描述。
图3为本发明的IP地址归属地的查询方法的第二实施例的流程图,如图3所示,在本实施例中,步骤S220还包括步骤:
S221:若查询到:当前查询位置的整型数字≤请求查询归属地的PI地址转换成的整型数字<当前查询位置加一的整型数字,判断当前查询位置上的整型数字与当前查询位置减一上的整型数字是否相同;相同,则返回当前查询位置减一的位置;不相同,则返回当前查询位置;
S222、判断返回的位置所对应的数组序号是偶数还是奇数;若为偶数,查询成功,返回相应的归属地信息;若为奇数,则在下一数组中进行步骤S221的操作;若在最后的数组中查询返回的位置所对应的数组序号为奇数,则返回失败信息;
在步骤S100和步骤S210之间,还包括步骤:
S201、检查数据库中IP地址与归属地的对应关系是否更新,是则进入步骤S203,否则进入S202;
S202、加载所述数组列表,进入步骤S210;
S203、从数据库读取更新的IP地址与归属地的对应关系,进入步骤S100。
现在,举例说明本实施例的IP地址归属地的查询方法,为了示例的方便,将IP地址转换成的整型数字用二位数表示,在步骤S100中,根据归属地分组排序后的整型数字为:
Data001=[11,13,14,17,18,19];
Data002=[16,20,21];
Data003=[30]。
Data001、Data002和Data003分别对应一个归属地,如Data001代表广东省,Data002代表广西省,Data003代表福建省。
再对上述数据进行入数组处理后得到:
Group001=[11,11,13,14,17,19];
Group002=[16,16,20,21];
Group003=[30,30]。
具体过程为:取Data001中数组最小的整型数字11作为IP地址的初始值并存入数组,对其进行自增并与其相邻的整型数字13进行比较,不相等,故将初始值11再保存一次;取与初始值11的自增值不相等的第一个整型数字13作为下一个初始值,对其自增并与其相邻的整型数字14比较,相等,则继续对13自增比较,此时13经历两次自增为15与17不相等,故将与初始值13自增值相等的最后一个整形数字14存入数组。对所有的数据反复进行上述如数组处理,最后得到Group001-Group003的数据。
同样地,Group001-Group003分别对应一个归属地,在此,Group001代表广东省,Group002代表广西省,Group003代表福建省。
在步骤S210中,将请求查询归属地的IP地址相应地转换为整型数字,例如16。
在步骤S220中用二分法来查询与整型数字16相匹配的整型数字的位置:先查询Group001,数组长度为6位,将整型数字16与第三位的整型数字13相比较,根据比较结果,在整型数字13的右半部分中查询,即[14,17,19]部分。此时,数组的长度为3位,则将整型数字16与第一位整型数字14比较,根据比较结果继续与[17,19]比较,此时满足步骤S221中:当前查询位置的整型数字14≤请求查询归属地的手机号码转换成的整型数字16<当前查询位置加一的整型数字17,判断当前查询位置的整形数字14与当前位置减一的整型数字13不相同,因此返回整型数字14的位置;在步骤S222判断整型数字14的位置所对应数组序号是奇数还是偶数,在此,整型数字14的数组序号为奇数3,因此整型数字16不属于Group001。在Group002中重复上述查询过程,得到整型数字16属于Group002,返回归属地为广西省。在步骤S230中输出归属地为广西省。
在本实施例中,其余情况与本发明IP地址归属地的查询方法的第一实施例相同,在此不再赘述。
本发明的手机号码的分组方法与本发明的IP地址的分组方法原理相同,只需将本发明的IP地址的分组方法中的IP地址替换为手机号码,手机号码转换为整型数字的方法为取手机号码的前7位(示例但不限制于此)。在此不再对本发明的手机号码的分组方法单独进行描述。
同样地,本发明的手机号码归属地的查询方法与本发明的IP地址归属地的查询方法原理相同,只需将本发明的IP地址归属地的查询方法中的IP地址替换为手机号码,手机号码转换为整型数字的方法为取手机号码的前7位(示例但不限制于此)。在此不再对本发明的手机号码归属地的查询方法单独进行描述。
图4为本发明的IP地址或者手机号码的分组方法和归属地的查询方法的工作流程图,如图4所示,在数据库中存储了IP地址或者手机号码与归属地的对应关系文件,由一分组查询程序根据本发明的IP地址或者手机号码的分组方法和归属地的查询方法对数据库中对应关系文件中的数据进行分组处理,并生成了数组列表。由分组查询程序执行查询的工作。整个工作流程包括以下步骤:
S1、分组查询程序检查数据库中对应关系文件的对应关系是否有更新;
S2、分组查询程序检查数组列表是否过期;
S3、如果对应关系有更新、或者数组列表过期,分组查询程序从数据库中读取全量对应关系;
S4、数据库向分组查询程序返回全量对应关系;
S5、分组查询程序保存对应关系并作分组处理以生成新的数组列表;
S6、分组查询程序将新的数组列表保存到原数组列表中;
S7、分组查询程序将新的数组列表加载到其中;
S8、外部程序向分组查询程序请求查询IP地址或者手机号码的归属地;
S9、分组查询程序从数组列表中逐组查询归属地情况;
S10、分组查询程序查询成功则返回归属地信息,失败则返回失败信息。
其中,步骤S3至S6的过程为初始化的过程。
本发明的IP地址或者手机号码的分组方法和归属地的查询方法具有以下优点:使用程序中的算法查询替代对系统消耗大的数据库查询、Key-Value的内存主键查询;查询速度比数据库查询、内存主键查询快,对系统资源消耗小;程序冷启动初始化速度比内存主键查询快。
在具体实施过程中可对本发明的IP地址或者手机号码的分组方法和归属地的查询方法进行适当的改进,以适应具体情况的要求。因此可以理解,根据本发明的具体实施方式只是起示范作用,并不用以限制本发明的保护范围。

Claims (10)

1.一种IP地址的分组方法,其特征在于,包括以下步骤:
S110、根据归属地对数据库中的IP地址进行分组;
S120、将每组的IP地址转换为整型数字并按照数值自增进行排序;
S130、将每组中数值最小的整型数字作为IP地址的初始值并存入数组,对所述IP地址的初始值自增并与其相邻的整型数字比较;若相等,则继续对所述IP地址的初始值自增并与下一个整型数字比较;若不相等,则将与自增后的所述IP地址的初始值相等的最后一个整型数字存入数组;若没有与自增后的IP地址的初始值相等的整型数字,则将IP地址的初始值再次存入数组;
S140、将与步骤S130中自增后的所述IP地址的初始值不相等的第一个整型数字作为IP地址的下一个初始值,并相应地重复步骤S130中的过程;
S150、在每组IP地址转换成的整型数字中,重复步骤S130和步骤S140的过程直至完成所有整型数字的入数组处理;
对每组的整型数字相应地执行步骤S130至步骤S150的过程,以生成完整的数组列表,所述数组列表中的每一数组与归属地一一对应。
2.根据权利要求1所述的IP地址的分组方法,其特征在于,在步骤S120中,IP地址表达为:IP1.IP2.IP3.IP4, IP地址转换成的整型数字A=IP1*255*255+IP2*255+IP3。
3.根据权利要求1所述的IP地址的分组方法,其特征在于,步骤S110中的所述归属地为省份或者是省份和城市。
4.一种IP地址归属地的查询方法,其特征在于,所述查询方法包括以下步骤:
S100、根据权利要求1所述的IP地址的分组方法对数据库中的IP地址进行分组并生成数组列表;
S210、将请求查询归属地的IP地址转换为整型数字; 
S220、在所述数组列表中用二分法逐组查询与请求查询归属地的IP地址转换成的整型数字匹配的整型数字的位置;
S230、若查询成功,则输出相应的归属地信息;若查询失败,则输出失败信息。
5.根据权利要求4所述的IP地址归属地的查询方法,其特征在于,请求查询归属地的IP地址表达为:IP1’.IP2’.IP3’.IP4’,请求查询归属地的IP地址转换成的整型数字A’=IP1’*255*255+IP2’*255+IP3’。
6.根据权利要求4所述的IP地址归属地的查询方法,其特征在于,步骤S220还包括步骤:
S221:若查询到:当前查询位置的整型数字≤请求查询归属地的PI地址转换成的整型数字<当前查询位置加一的整型数字,判断当前查询位置上的整型数字与当前查询位置减一上的整型数字是否相同;相同,则返回当前查询位置减一的位置;不相同,则返回当前查询位置;
S222、判断返回的位置所对应的数组序号是偶数还是奇数;若为偶数,查询成功,返回相应的归属地信息;若为奇数,则在下一数组中进行步骤S221的操作;若在最后的数组中查询返回的位置所对应的数组序号为奇数,则返回失败信息;
在步骤S100与步骤S210之间,还包括步骤:
S201、检查数据库中IP地址与归属地的对应关系是否更新,是则进入步骤S203,否则进入S202;
S202、加载所述数组列表,进入步骤S210;
S203、从数据库读取更新的IP地址与归属地的对应关系,进入步骤S100。
7.一种手机号码的分组方法,其特征在于,包括以下步骤:
S310、根据归属地对数据库中的手机号码进行分组;
S320、将每组的手机号码取前7位作为整型数字并按照数值自增进行排序;
S330、将每组中数值最小的整型数字作为手机号码的初始值并存入数组,对所述手机号码的初始值自增并与其相邻的整型数字比较;若相等,则继续对所述手机号码的初始值自增并与下一个整型数字比较;若不相等,则将与自增后的所述手机号码的初始值相等的最后一个整型数字存入数组;若没有与自增后的手机号码的初始值相等的整型数字,则将手机号码的初始值再次存入数组;
S340、将与步骤S330中自增后的所述手机号码的初始值不相等的第一个整型数字作为手机号码的下一个初始值,并相应地重复步骤S330中的过程;
S350、在每组手机号码转换成的整型数字中,重复步骤S330和步骤S340的过程直至完成所有整型数字的入数组处理;
对每组的整型数字相应地执行步骤S330至步骤S350的过程,以生成完整的数组列表,所述数组列表中的每一数组与归属地一一对应。
8.根据权利要求7所述的手机号码的分组方法,其特征在于,步骤S310中的所述归属地为省份或者是省份和城市。
9.一种手机号码归属地的查询方法,其特征在于,所述查询方法包括以下步骤:
S400、根据权利要求7所述的手机号码的分组方法对数据库中的手机号码进行分组并生成数组列表;
S410、将请求查询归属地的手机号码取前7位作为整型数字; 
S420、在所述数组列表中用二分法逐组查询与请求查询归属地的手机号码转换成的整型数字匹配的整型数字的位置;
S430、若查询成功,则输出相应的归属地信息;若查询失败,则输出失败信息。
10.根据权利要求9所述的手机号码归属地的查询方法,其特征在于,步骤S320还包括步骤:
S321:若查询到:当前查询位置的整型数字≤请求查询归属地的手机号码转换成的整型数字<当前查询位置加一的整型数字,判断当前查询位置上的整型数字与当前查询位置减一上的整型数字是否相同;相同,则返回当前查询位置减一的位置;不相同,则返回当前查询位置;
S322、判断返回的位置所对应的数组序号是偶数还是奇数;若为偶数,查询成功,返回相应的归属地信息;若为奇数,则在下一数组中进行步骤S321的操作;若在最后的数组中查询返回的位置所对应的数组序号为奇数,则返回失败信息;
在步骤S400与步骤S410之间,还包括步骤:
S401、检查数据库中手机号码与归属地的对应关系是否更新,是则进入步骤S403,否则进入S402;
S402、加载所述数组列表,进入步骤S410;
S403、从数据库读取更新的手机号码与归属地的对应关系,进入步骤S400。
CN201110432897.1A 2011-12-21 2011-12-21 Ip地址或者手机号码的分组方法和归属地的查询方法 Active CN103177000B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110432897.1A CN103177000B (zh) 2011-12-21 2011-12-21 Ip地址或者手机号码的分组方法和归属地的查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110432897.1A CN103177000B (zh) 2011-12-21 2011-12-21 Ip地址或者手机号码的分组方法和归属地的查询方法

Publications (2)

Publication Number Publication Date
CN103177000A true CN103177000A (zh) 2013-06-26
CN103177000B CN103177000B (zh) 2016-06-15

Family

ID=48636881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110432897.1A Active CN103177000B (zh) 2011-12-21 2011-12-21 Ip地址或者手机号码的分组方法和归属地的查询方法

Country Status (1)

Country Link
CN (1) CN103177000B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103354576A (zh) * 2013-06-28 2013-10-16 贵阳朗玛信息技术股份有限公司 手机及其手机号归属信息的存储及查找方法
CN104102707A (zh) * 2014-07-10 2014-10-15 西安交通大学 一种面向MapReduce框架的地理归属信息查询方法
CN104301182A (zh) * 2014-10-22 2015-01-21 赛尔网络有限公司 一种慢速网站访问异常信息的查询方法及装置
CN104539750A (zh) * 2014-12-30 2015-04-22 深圳市兰丁科技有限公司 一种ip定位方法和装置
CN104767839A (zh) * 2015-03-25 2015-07-08 五八有限公司 一种ip定位方法及装置
CN105187568A (zh) * 2015-08-12 2015-12-23 广东睿江科技有限公司 一种ipv4地址转换方法及装置
CN106348119A (zh) * 2016-09-20 2017-01-25 广州特种机电设备检测研究院 一种基于物联网的隔离型电梯运行安全监测系统和方法
CN106534049A (zh) * 2015-09-11 2017-03-22 腾讯科技(深圳)有限公司 基于服务器的数据下发方法、客户端、服务器及系统
CN106777178A (zh) * 2016-12-22 2017-05-31 上海大汉三通无线通信有限公司 一种手机号码的存储方法及查询方法
CN106940708A (zh) * 2017-01-23 2017-07-11 北京思特奇信息技术股份有限公司 一种基于二分查找法实现ip范围定位的方法及系统
CN107979623A (zh) * 2016-10-24 2018-05-01 百度在线网络技术(北京)有限公司 数据下载方法和装置
CN108270631A (zh) * 2016-12-30 2018-07-10 上海华讯网络系统有限公司 网络系统中的应用系统与数据包关联的分析系统及方法
CN108573018A (zh) * 2018-01-12 2018-09-25 北京金山云网络技术有限公司 Ip库生成方法、装置、电子设备及计算机可读存储介质
CN108712519A (zh) * 2018-05-31 2018-10-26 康键信息技术(深圳)有限公司 Ip地址的定位方法、装置及存储介质
CN109783521A (zh) * 2018-12-29 2019-05-21 湖南安数网络有限公司 一种ip归属地确定方法、装置和计算机存储介质
CN110505321A (zh) * 2019-08-26 2019-11-26 北京泰和纬度网络技术有限公司 一种用于访问ip地址的方法及系统
CN112714204A (zh) * 2020-12-22 2021-04-27 赛尔网络有限公司 IPv6地址与网段的匹配方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005091596A1 (en) * 2004-03-12 2005-09-29 Siemens Aktiengesellschaft Exact geographical information for an internet web server through internet dialing over a telecommunications network
CN101026644A (zh) * 2006-02-22 2007-08-29 华为技术有限公司 一种通信终端及显示移动电话主叫发起地信息的方法
CN101175000A (zh) * 2007-11-22 2008-05-07 华为技术有限公司 一种自动检测ip地址的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005091596A1 (en) * 2004-03-12 2005-09-29 Siemens Aktiengesellschaft Exact geographical information for an internet web server through internet dialing over a telecommunications network
CN101026644A (zh) * 2006-02-22 2007-08-29 华为技术有限公司 一种通信终端及显示移动电话主叫发起地信息的方法
CN101175000A (zh) * 2007-11-22 2008-05-07 华为技术有限公司 一种自动检测ip地址的方法及装置

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103354576A (zh) * 2013-06-28 2013-10-16 贵阳朗玛信息技术股份有限公司 手机及其手机号归属信息的存储及查找方法
CN103354576B (zh) * 2013-06-28 2015-12-02 贵阳朗玛信息技术股份有限公司 手机及其手机号归属信息的存储及查找方法
CN104102707A (zh) * 2014-07-10 2014-10-15 西安交通大学 一种面向MapReduce框架的地理归属信息查询方法
CN104102707B (zh) * 2014-07-10 2016-03-30 西安交通大学 一种面向MapReduce框架的地理归属信息查询方法
CN104301182A (zh) * 2014-10-22 2015-01-21 赛尔网络有限公司 一种慢速网站访问异常信息的查询方法及装置
CN104301182B (zh) * 2014-10-22 2018-09-11 赛尔网络有限公司 一种慢速网站访问异常信息的查询方法及装置
CN104539750A (zh) * 2014-12-30 2015-04-22 深圳市兰丁科技有限公司 一种ip定位方法和装置
CN104767839A (zh) * 2015-03-25 2015-07-08 五八有限公司 一种ip定位方法及装置
CN105187568A (zh) * 2015-08-12 2015-12-23 广东睿江科技有限公司 一种ipv4地址转换方法及装置
CN105187568B (zh) * 2015-08-12 2018-09-25 广东睿江云计算股份有限公司 一种ipv4地址转换方法及装置
CN106534049A (zh) * 2015-09-11 2017-03-22 腾讯科技(深圳)有限公司 基于服务器的数据下发方法、客户端、服务器及系统
CN106534049B (zh) * 2015-09-11 2020-10-20 腾讯科技(深圳)有限公司 基于服务器的数据下发方法、客户端、服务器及系统
CN106348119A (zh) * 2016-09-20 2017-01-25 广州特种机电设备检测研究院 一种基于物联网的隔离型电梯运行安全监测系统和方法
CN107979623A (zh) * 2016-10-24 2018-05-01 百度在线网络技术(北京)有限公司 数据下载方法和装置
CN106777178A (zh) * 2016-12-22 2017-05-31 上海大汉三通无线通信有限公司 一种手机号码的存储方法及查询方法
CN108270631A (zh) * 2016-12-30 2018-07-10 上海华讯网络系统有限公司 网络系统中的应用系统与数据包关联的分析系统及方法
CN106940708A (zh) * 2017-01-23 2017-07-11 北京思特奇信息技术股份有限公司 一种基于二分查找法实现ip范围定位的方法及系统
CN108573018A (zh) * 2018-01-12 2018-09-25 北京金山云网络技术有限公司 Ip库生成方法、装置、电子设备及计算机可读存储介质
CN108712519A (zh) * 2018-05-31 2018-10-26 康键信息技术(深圳)有限公司 Ip地址的定位方法、装置及存储介质
CN108712519B (zh) * 2018-05-31 2022-07-08 康键信息技术(深圳)有限公司 Ip地址的定位方法、装置及存储介质
CN109783521A (zh) * 2018-12-29 2019-05-21 湖南安数网络有限公司 一种ip归属地确定方法、装置和计算机存储介质
CN109783521B (zh) * 2018-12-29 2021-09-28 湖南安数网络有限公司 一种ip归属地确定方法、装置和计算机存储介质
CN110505321A (zh) * 2019-08-26 2019-11-26 北京泰和纬度网络技术有限公司 一种用于访问ip地址的方法及系统
CN110505321B (zh) * 2019-08-26 2022-05-31 北京泰和纬度网络技术有限公司 一种用于访问ip地址的方法及系统
CN112714204A (zh) * 2020-12-22 2021-04-27 赛尔网络有限公司 IPv6地址与网段的匹配方法、装置、电子设备和存储介质
CN112714204B (zh) * 2020-12-22 2022-09-20 赛尔网络有限公司 IPv6地址与网段的匹配方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN103177000B (zh) 2016-06-15

Similar Documents

Publication Publication Date Title
CN103177000A (zh) Ip地址或者手机号码的分组方法和归属地的查询方法
CN102479207B (zh) 一种信息搜索的方法、系统及信息搜索设备
CN105740337B (zh) 一种基于内容的发布订阅系统中的事件快速匹配方法
CN101354726B (zh) 一种机群文件系统的内存元数据管理方法
CN101043421B (zh) 一种基于内存的ip地址最长匹配快速查找的方法
CN108769111A (zh) 一种服务器连接方法、计算机可读存储介质及终端设备
CN1949220A (zh) 网络社区动态目录的构建系统和方法
CN107454203A (zh) 在分布式系统中生成唯一id的方法
CN101661509B (zh) 一种生成数据库表主键字段的方法及装置
CN108717457B (zh) 一种电子商务平台大数据处理方法和系统
CN103246659A (zh) 键值数据查询的方法和装置
CN102377664A (zh) 一种基于tcam的区域匹配装置和方法
CN101827137A (zh) 一种基于哈希表和扩展存储器的高性能IPv6地址查找方法
CN107330094B (zh) 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法
CN101604261B (zh) 超级计算机的任务调度方法
CN106599091A (zh) 基于键值存储的rdf图结构存储和索引方法
CN103838770A (zh) 一种数据逻辑分区的方法和系统
CN102546299A (zh) 一种在大流量下进行深度包检测的方法
CN105574021A (zh) 一种数据库的数据压缩方法和装置
CN103581358A (zh) Ip地址列表匹配方法及装置
CN102982147B (zh) 一种提高数据信息整合效率的方法和装置
CN106161520A (zh) 大数据应用平台及基于其的交互方法
CN101207467A (zh) 循环冗余校验码的生成和数据序列发送、校验方法及装置
CN107562762A (zh) 数据索引构建方法及装置
CN103581024A (zh) Mac地址硬件与软件相结合的学习方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant