号段及归属地的编码方法和系统、归属地查询方法和系统.pdf

上传人:a3 文档编号:1489923 上传时间:2018-06-17 格式:PDF 页数:14 大小:3.84MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210153064.6

申请日:

2012.05.16

公开号:

CN103425669A

公开日:

2013.12.04

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20120516|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

北京安管佳科技有限公司

发明人:

叶纪平; 石磊

地址:

100026 北京市朝阳区西大望路1号温特莱中心A座207室

优先权:

专利代理机构:

北京派特恩知识产权代理事务所(普通合伙) 11270

代理人:

蒋雅洁;程立民

PDF下载: PDF下载
内容摘要

本发明公开了一种号段及归属地的编码方法和系统、归属地查询方法和系统,其中,归属地查询方法包括:从待查询号码中提取运营商号段和地区号段;根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。通过本发明,能降低号段及归属地的数据量大小,提高归属地的查询效率、缩短查询时间。

权利要求书

权利要求书
1.  一种号段及归属地的编码方法,其特征在于,该方法包括:
对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;
创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放;
创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;
创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;
将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表;
对所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表进行存储。

2.  根据权利要求1所述号段及归属地的编码方法,其特征在于,该方法进一步包括:
对于未知的归属地进行特殊编号,并对所述特殊编号用9bit来编码。

3.  根据权利要求1或2所述号段及归属地的编码方法,其特征在于,该方法进一步包括:
对存储的所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表,用压缩算法进行压缩。

4.  一种号段及归属地的编码系统,其特征在于,该系统包括:
第一映射表创建模块,用于对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放;
运营商号段表创建模块,用于创建运营商号段表,且在所述运营商号段表 中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;
第二映射表创建模块,用于创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表;
存储模块,用于对所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表进行存储。

5.  根据权利要求4所述号段及归属地的编码系统,其特征在于,所述第一映射表创建模块还用于,对于未知的归属地进行特殊编号,并对所述特殊编号用9bit来编码。

6.  根据权利要求4或5所述号段及归属地的编码系统,其特征在于,该系统还包括压缩模块,用于对存储的所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表,用压缩算法进行压缩。

7.  一种归属地查询方法,其特征在于,该方法包括:
从待查询号码中提取运营商号段和地区号段;
根据提取的所述运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。

8.  根据权利要求7所述归属地查询方法,其特征在于,所述归属地和地区编号的映射表通过以下方式建立:
对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;
创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放。

9.  根据权利要求7所述归属地查询方法,其特征在于,所述运营商号段表、以及地区号段和地区编号的映射总表通过以下方式建立:
创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;
创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;
将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表。

10.  根据权利要求7、8或9所述归属地查询方法,其特征在于,所述根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号,具体为:
根据提取的运营商号段查询所述运营商号段表,得到对应的序号;
根据得到的序号、以及提取的地区号段计算目标地区编号在所述映射总表中的字节偏移位置和bit偏移位置,并依此从所述映射总表提取9bit的目标地区编号。

11.  根据权利要求10所述归属地查询方法,其特征在于,所述地区号段的范围为0000~9999,
目标地区编号在所述映射总表中的字节偏移位置为:(10000×(x-1)+y)×9/8;
目标地区编号在所述映射总表中的bit偏移位置为:(10000×(x-1)+y)×9;
其中,x表示运营商号段所对应的序号,y表示从待查询号码中提取的地区号段。

12.  根据权利要求10所述归属地查询方法,其特征在于,所述根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地,具体为:
将得到的地区编号减1后与所述固定长度相乘,计算得到对应的归属地在所述归属地和地区编号的映射表中的字节偏移位置,并依此从所述归属地和地区编号的映射表中提取对应的归属地。

13.  一种归属地查询系统,其特征在于,该系统包括:
号段提取模块,用于从待查询号码中提取运营商号段和地区号段;
归属地查询模块,用于根据提取的所述运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。

14.  根据权利要求13所述归属地查询系统,其特征在于,所述归属地和地区编号的映射表通过以下方式建立:
对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;
创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放。

15.  根据权利要求13所述归属地查询系统,其特征在于,所述运营商号段表、以及地区号段和地区编号的映射总表通过以下方式建立:
创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;
创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;
将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表。

16.  根据权利要求13、14或15所述归属地查询系统,其特征在于,所述归属地查询模块还用于,
根据提取的运营商号段查询所述运营商号段表,得到对应的序号;
根据得到的序号、以及提取的地区号段计算目标地区编号在所述映射总表中的字节偏移位置和bit偏移位置,并依此从所述映射总表提取9bit的目标地区编号。

17.  根据权利要求16所述归属地查询系统,其特征在于,所述地区号段的范围为0000~9999,
目标地区编号在所述映射总表中的字节偏移位置为:(10000×(x-1)+y) ×9/8;
目标地区编号在所述映射总表中的bit偏移位置为:(10000×(x-1)+y)×9;
其中,x表示运营商号段所对应的序号,y表示从待查询号码中提取的地区号段。

18.  根据权利要求17所述归属地查询系统,其特征在于,所述归属地查询模块还用于,将得到的地区编号减1后与所述固定长度相乘,计算得到对应的归属地在所述归属地和地区编号的映射表中的字节偏移位置,并依此从所述归属地和地区编号的映射表中提取对应的归属地。

说明书

说明书号段及归属地的编码方法和系统、归属地查询方法和系统
技术领域
本发明涉及来/去电号码的归属地查询技术领域,尤其涉及一种号段及归属地的编码方法和系统、归属地查询方法和系统。
背景技术
目前的智能手机通常都具备来/去电归属地查询和显示功能,所谓归属地是指来/去电号码的所属地区,如:归属地为北京、上海等等;该功能通过智能手机读取本地数据库来获取号码的归属地,或者通过网络实时查询数据库来获取号码的归属地。该数据库中主要包括号段及其对应的归属地,其中,号段一共包括七位数字,前三位是运营商号段,后四位是地区号段,例如:在一个“1390025”的号段中,前三位的“139”是运营商号段,后四位的“0025”是地区号段。截止到2011年底已经超出250000条对应关系,如果按照号段占用7个字节,归属地平均占用13个字节,那么总数据量已经超过5M(兆)。这样的数据量相对于终端软件包的大小以及移动带宽和流量套餐而言,都是巨大的,因此不适合嵌入到终端软件包中,也不适合经常在线更新,对来/去电需要实时查询显示时,从如此大的数据库里去查找结果,其性能也达不到常规需求。
针对上述问题,现有技术中提出的一种解决方法是,先将归属地进行地区编号(如北京编号为1,天津编号为2等等),对于连续的号段如果其归属地相同,则进行合并,并增加相同个数的描述;对每个号段提取前三位的运营商号段形成分类表,最后保存时采用双字节(byte)的其中9位(bit)来表示地区编号,其余7位来表示归属地相同的连续号段的个数。
该方法由于对归属地相同的连续号段进行了合并,因此使得号段和归属地的数据量得到压缩;但是对归属地相同的连续号段进行合并后,就无法直接根 据地区号段定位到地区编号的保存位置。因为,在查找号段对应的地区编号时,对于每一个运营商号段对应的分类表,都需要将所有数据装载进去,然后将归属地相同的连续号段的个数累加起来,最后才能定位到目标地区号段对应的地区编号的保存位置。由于,该方法的查询时间与数据量的大小相关,因此,其查询时间通常都比较长,查询效率不高。
发明内容
有鉴于此,本发明的主要目的在于提供一种号段及归属地的编码方法和系统、归属地查询方法和系统,以解决现有技术中号段及归属地的数据量大,归属地的查询效率低、查询时间长的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种号段及归属地的编码方法,该方法包括:
对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;
创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放;
创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;
创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;
将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表;
对所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表进行存储。
该方法进一步包括:
对于未知的归属地进行特殊编号,并对所述特殊编号用9bit来编码。
该方法进一步包括:
对存储的所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表,用压缩算法进行压缩。
本发明还提供了一种号段及归属地的编码系统,该系统包括:
第一映射表创建模块,用于对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放;
运营商号段表创建模块,用于创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;
第二映射表创建模块,用于创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表;
存储模块,用于对所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表进行存储。
所述第一映射表创建模块还用于,对于未知的归属地进行特殊编号,并对所述特殊编号用9bit来编码。
该系统还包括压缩模块,用于对存储的所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表,用压缩算法进行压缩。
本发明还提供了一种归属地查询方法,该方法包括:
从待查询号码中提取运营商号段和地区号段;
根据提取的所述运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。
所述归属地和地区编号的映射表通过以下方式建立:
对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;
创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放。
所述运营商号段表、以及地区号段和地区编号的映射总表通过以下方式建立:
创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;
创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;
将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表。
所述根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号,具体为:
根据提取的运营商号段查询所述运营商号段表,得到对应的序号;
根据得到的序号、以及提取的地区号段计算目标地区编号在所述映射总表中的字节偏移位置和bit偏移位置,并依此从所述映射总表提取9bit的目标地区编号。
所述地区号段的范围为0000~9999,
目标地区编号在所述映射总表中的字节偏移位置为:(10000×(x-1)+y)×9/8;
目标地区编号在所述映射总表中的bit偏移位置为:(10000×(x-1)+y)×9;
其中,x表示运营商号段所对应的序号,y表示从待查询号码中提取的地区号段。
所述根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地,具体为:
将得到的地区编号减1后与所述固定长度相乘,计算得到对应的归属地在 所述归属地和地区编号的映射表中的字节偏移位置,并依此从所述归属地和地区编号的映射表中提取对应的归属地。
本发明还提供了一种归属地查询系统,该系统包括:
号段提取模块,用于从待查询号码中提取运营商号段和地区号段;
归属地查询模块,用于根据提取的所述运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。
所述归属地和地区编号的映射表通过以下方式建立:
对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;
创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放。
所述运营商号段表、以及地区号段和地区编号的映射总表通过以下方式建立:
创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;
创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;
将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表。
所述归属地查询模块还用于,
根据提取的运营商号段查询所述运营商号段表,得到对应的序号;
根据得到的序号、以及提取的地区号段计算目标地区编号在所述映射总表中的字节偏移位置和bit偏移位置,并依此从所述映射总表提取9bit的目标地区编号。
所述地区号段的范围为0000~9999,
目标地区编号在所述映射总表中的字节偏移位置为:(10000×(x-1)+y) ×9/8;
目标地区编号在所述映射总表中的bit偏移位置为:(10000×(x-1)+y)×9;
其中,x表示运营商号段所对应的序号,y表示从待查询号码中提取的地区号段。
所述归属地查询模块还用于,将得到的地区编号减1后与所述固定长度相乘,计算得到对应的归属地在所述归属地和地区编号的映射表中的字节偏移位置,并依此从所述归属地和地区编号的映射表中提取对应的归属地。
本发明所提供的一种号段及归属地的编码方法和系统,能够降低号段及归属地的数据量大小;一种归属地查询方法和系统,能够提高归属地的查询效率、缩短查询时间。
附图说明
图1为本发明实施例的一种号段及归属地的编码方法的流程图;
图2为本发明实施例的一种号段及归属地的编码系统的结构示意图;
图3为本发明实施例的一种归属地查询方法的流程图;
图4为本发明实施例的一种归属地查询系统的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
为实现降低号段及归属地的数据量大小,本发明的实施例提供了一种号段及归属地的编码方法,如图1所示,该方法主要包括:
步骤101,对归属地进行地区编号,并对该地区编号用9个二进制位(bit)来编码。
将归属地信息表中的所有归属地进行连续编号,一般从1开始,如:北京的编号为1、上海的编号为2等等;对于未知的归属地(即未知地区)也需要进行特殊编号,如特殊编号为0,并对特殊编号也用9bit来编码。由于目前全国的不同归属地大约有360多个,不超过512个,因此用9bit来对地区编号进 行编码表示已经足够。归属地、地区编号及其对应的bit编码,如下表所示:
  归属地  地区编号  地区编号的bit编码  未知的归属地  0  000000000  北京  1  000000001  上海  2  000000010  江苏南京  3  000000011  ...  ...  ...
步骤102,创建归属地和地区编号的映射表,且在该映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放。
归属地用字符串表示,对齐到字节,长度一般用字节表示,比如32字节。在归属地和地区编号的映射表中,每个归属地都用相同的且固定长度的字节来进行编码表示,且每个归属地的编码都按照地区编号的大小顺序依次存放,例如:固定长度为32字节,那么在归属地和地区编号的映射表中,北京的32字节编码、上海的32字节编码依次(即按照地区编号从小到大的顺序)连续存放。这样,在通过地区编号查找对应的归属地时,只需要将地区编号减1后与固定长度相乘,即可计算得到对应的归属地在所述映射表中的字节偏移位置,进而依据计算所得的字节偏移位置和固定长度,从所述映射表中提取对应的归属地。
步骤103,创建运营商号段表,且在该运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码。
手机号码的前三位为运营商号段,截止2011年底大概有28个运营商号段,实际应用中的运营商号段在130~190之间,不超过256,因此,可以用于1个字节来进行编码表示。
在运营商号段表中,各个运营商号段用序号标注,如:130的序号为1,131的序号为2,以此类推;各运营商号段按照为其分配的序号的从小到大顺序进行排列。
步骤104,创建每个运营商号段下的地区号段和地区编号的映射表,且在该映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依 次存放。
手机号码的第4~7位为地区号段,对于每个运营商号段,都可以对应有10000个地区号段,从0000~9999。在所述映射表中,地区编号的9bit编码按照地区号段的从小到大顺序以bit连续的方式依次存放,例如:0000所对应地区编号的9bit编码、0001所对应地区编号的9bit编码等等,依次连续存放在所述映射表中,以此类推。这样就得到针对每个运营商号段下的地区号段和地区编号的映射表,所占空间大小固定,为10000×9/8=11250字节,约为11k。
需要说明的是,由于不同的运营商号段下,地区号段和地区编号的映射关系是不同的,例如:在130的运营商号段下,0000的地区号段对应的地区编号为1(即北京),而在187的运营商号段下,0000的地区号段对应的地区编号为2(即上海);因此,本发明的实施例需要分别创建每个运营商号段下的地区号段和地区编号的映射表。
步骤105,将每个运营商号段下的地区号段和地区编号的映射表,按照运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表。
即地区号段和地区编号的映射总表中包括每个运营商号段下的地区号段和地区编号的映射表,且这些映射表是按照运营商号段表中的运营商号段的排列顺序依次存放的。以目前28个运营商号段来计算,该映射总表的数据量大小约为300k。
步骤106,对归属地和地区编号的映射表、运营商号段表、以及地区号段和地区编号的映射总表进行存储。
将创建的归属地和地区编号的映射表、运营商号段表、以及地区号段和地区编号的映射总表存储到文件或其他存储单元中,需要加上必要的表的定位数据,例如:在文件头增加归属地和地区编号的映射表、运营商号段表、以及地区号段和地区编号的映射总表的定位数据,用以指示文件中各表的位置。如此一来,存储数据的数据量大小在300k左右。
较佳的,还可以对存储的归属地和地区编号的映射表、运营商号段表、以 及所述地区号段和地区编号的映射总表,用压缩算法(如常用的zip压缩算法)进一步压缩,压缩后的数据量大小约为100k。
需要说明的是,如果是在线更新,则需要进行压缩,在线更新完毕后,再解压缩,这样数据流量少,传输快,适合带宽不高的移动网络。如果上述存储数据附在软件包中,则一般的平台在打包时都会对整个软件包用通用的压缩算法进行压缩,因此,这种情况无需额外的压缩,而只需将未压缩的存储数据附在软件包中,只需一次对整个软件包的压缩即可。
由此可以看出,通过本发明实施例的编码方法,只有300k左右的数据量,而实际传输或打包时压缩后只有100k左右的数据量,因此对软件包的大小和网络传输都不会造成太大的压力。
对应上述号段及归属地的编码方法,本发明的实施例还提供了一种号段及归属地的编码系统,如图2所示,该系统主要包括:第一映射表创建模块10、运营商号段表创建模块20、第二映射表创建模块30和存储模块40。
其中,第一映射表创建模块10,用于对归属地进行地区编号,并对地区编号用9bit来编码;创建归属地和地区编号的映射表,且在该映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放;
运营商号段表创建模块20,用于创建运营商号段表,且在该运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;
第二映射表创建模块30,用于创建每个运营商号段下的地区号段和地区编号的映射表,且在该映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;将每个运营商号段下的地区号段和地区编号的映射表,按照运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表;
存储模块40,连接第一映射表创建模块10、运营商号段表创建模块20和第二映射表创建模块30,用于对归属地和地区编号的映射表、运营商号段表、以及地区号段和地区编号的映射总表进行存储。
较佳的,第一映射表创建模块10还用于,对于未知的归属地进行特殊编号,如特殊编号为0,并对该特殊编号用9bit来编码。
较佳的,该系统还可以包括压缩模块50,连接存储模块40,用于对存储的归属地和地区编号的映射表、运营商号段表、以及地区号段和地区编号的映射总表,用压缩算法进行压缩。
为实现提高归属地的查询效率、缩短查询时间,本发明的实施例还提供了一种归属地查询方法,如图3所示,该方法主要包括:
步骤301,从待查询号码中提取运营商号段和地区号段。
手机号码的前三位是运营商号段,第4~7位是地区号段。
步骤302,根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。
其中,归属地和地区编号的映射表、运营商号段表、地区号段和地区编号的映射总表可以通过图1所示实施例中的方法来创建,此处不再赘述。
较佳的,根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号,具体为:
根据提取的运营商号段查询运营商号段表,得到对应的序号;
根据得到的序号、以及提取的地区号段计算目标地区编号在映射总表中的字节偏移位置和bit偏移位置,并依此从映射总表提取9bit的目标地区编号。
所述地区号段的范围为0000~9999,
相应的,目标地区编号在所述映射总表中的字节偏移位置为:(10000×(x-1)+y)×9/8;
目标地区编号在所述映射总表中的bit偏移位置为:(10000×(x-1)+y)×9;
其中,x表示运营商号段所对应的序号,y表示从待查询号码中提取的地区号段。
根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地,具体为:
将得到的地区编号减1后与编码归属地的固定长度相乘,计算得到对应的归属地在归属地和地区编号的映射表中的字节偏移位置,并依此从归属地和地区编号的映射表中提取对应的归属地。
由此可以看出,本发明实施例的查询时间与数据量大小相关的查询过程只出现在从运营商号段表中查找对应的运营商号段的过程中,目前的运营商号段只有28个,因此该过程的查询时间几乎为常量时间;而在本发明实施例的其他查询过程中,查询时间与数据量大小不相关,例如:在查询地区号段和地区编号的映射总表、以及归属地和地区编号的映射表时,都可以通过计算直接定位到相应的偏移位置,因此查询时间为常量时间,非常小。
还需要说明的是,如果是手机本地查询归属地,那么图3所示的操作由手机自身来执行,归属地和地区编号的映射表、运营商号段表、地区号段和地区编号的映射总表保存在手机的本地数据库中;如果是手机通过网络实时查询归属地,那么图3所示的操作由网络的服务端来执行,归属地和地区编号的映射表、运营商号段表、地区号段和地区编号的映射总表保存在服务端的数据库中。
对应上述归属地查询方法,本发明的实施例还提供了一种归属地查询系统,如图4所示,该系统主要包括:号段提取模块60和归属地查询模块70。
其中,号段提取模块60,用于从待查询号码中提取运营商号段和地区号段;
归属地查询模块70,用于根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。
较佳的,归属地查询模块70还用于,根据提取的运营商号段查询运营商号段表,得到对应的序号;根据得到的序号、以及提取的地区号段计算目标地区编号在映射总表中的字节偏移位置和bit偏移位置,并依此从映射总表提取9bit的目标地区编号。
较佳的,归属地查询模块70还用于,将得到的地区编号减1后与编码归属地的固定长度相乘,计算得到对应的归属地在归属地和地区编号的映射表中的字节偏移位置,并依此从归属地和地区编号的映射表中提取对应的归属地。
还需要说明的是,如果是手机本地查询归属地,那么图4所示的查询系统应用于手机内部;如果是手机通过网络实时查询归属地,那么图4所示的查询系统应用于网络的服务端内部。
综上所述,本发明实施例所提供的号段及归属地的编码方法和系统,能够降低号段及归属地的数据量大小;本发明实施例所提供的归属地查询方法和系统,能够提高归属地的查询效率、缩短查询时间。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

号段及归属地的编码方法和系统、归属地查询方法和系统.pdf_第1页
第1页 / 共14页
号段及归属地的编码方法和系统、归属地查询方法和系统.pdf_第2页
第2页 / 共14页
号段及归属地的编码方法和系统、归属地查询方法和系统.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《号段及归属地的编码方法和系统、归属地查询方法和系统.pdf》由会员分享,可在线阅读,更多相关《号段及归属地的编码方法和系统、归属地查询方法和系统.pdf(14页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103425669 A(43)申请公布日 2013.12.04CN103425669A*CN103425669A*(21)申请号 201210153064.6(22)申请日 2012.05.16G06F 17/30(2006.01)(71)申请人北京安管佳科技有限公司地址 100026 北京市朝阳区西大望路1号温特莱中心A座207室(72)发明人叶纪平 石磊(74)专利代理机构北京派特恩知识产权代理事务所(普通合伙) 11270代理人蒋雅洁 程立民(54) 发明名称号段及归属地的编码方法和系统、归属地查询方法和系统(57) 摘要本发明公开了一种号段及归属地的编码方法和。

2、系统、归属地查询方法和系统,其中,归属地查询方法包括:从待查询号码中提取运营商号段和地区号段;根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。通过本发明,能降低号段及归属地的数据量大小,提高归属地的查询效率、缩短查询时间。(51)Int.Cl.权利要求书3页 说明书8页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书3页 说明书8页 附图2页(10)申请公布号 CN 103425669 ACN 103425669 A1/3页21.一种号段及归属。

3、地的编码方法,其特征在于,该方法包括:对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放;创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段。

4、和地区编号的映射总表;对所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表进行存储。2.根据权利要求1所述号段及归属地的编码方法,其特征在于,该方法进一步包括:对于未知的归属地进行特殊编号,并对所述特殊编号用9bit来编码。3.根据权利要求1或2所述号段及归属地的编码方法,其特征在于,该方法进一步包括:对存储的所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表,用压缩算法进行压缩。4.一种号段及归属地的编码系统,其特征在于,该系统包括:第一映射表创建模块,用于对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;创建归属地。

5、和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放;运营商号段表创建模块,用于创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;第二映射表创建模块,用于创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表;存储模块,用于对所述归属地和地区编号的映射。

6、表、运营商号段表、以及所述地区号段和地区编号的映射总表进行存储。5.根据权利要求4所述号段及归属地的编码系统,其特征在于,所述第一映射表创建模块还用于,对于未知的归属地进行特殊编号,并对所述特殊编号用9bit来编码。6.根据权利要求4或5所述号段及归属地的编码系统,其特征在于,该系统还包括压缩模块,用于对存储的所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表,用压缩算法进行压缩。7.一种归属地查询方法,其特征在于,该方法包括:从待查询号码中提取运营商号段和地区号段;根据提取的所述运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的。

7、地区编号;并根据得到的地区编号查询归属地和地区编号的映权 利 要 求 书CN 103425669 A2/3页3射表,得到对应的归属地。8.根据权利要求7所述归属地查询方法,其特征在于,所述归属地和地区编号的映射表通过以下方式建立:对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放。9.根据权利要求7所述归属地查询方法,其特征在于,所述运营商号段表、以及地区号段和地区编号的映射总表通过以下方式建立:创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按。

8、照序号的大小顺序排列,每个运营商号段用1个字节来编码;创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表。10.根据权利要求7、8或9所述归属地查询方法,其特征在于,所述根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号,具体为:根据提取的运营商号段查询所述运营商号段表,得到对应的序号;根据得到的序号、以及提取的地区号段。

9、计算目标地区编号在所述映射总表中的字节偏移位置和bit偏移位置,并依此从所述映射总表提取9bit的目标地区编号。11.根据权利要求10所述归属地查询方法,其特征在于,所述地区号段的范围为00009999,目标地区编号在所述映射总表中的字节偏移位置为:(10000(x-1)+y)9/8;目标地区编号在所述映射总表中的bit偏移位置为:(10000(x-1)+y)9;其中,x表示运营商号段所对应的序号,y表示从待查询号码中提取的地区号段。12.根据权利要求10所述归属地查询方法,其特征在于,所述根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地,具体为:将得到的地区编号减1后与所述固。

10、定长度相乘,计算得到对应的归属地在所述归属地和地区编号的映射表中的字节偏移位置,并依此从所述归属地和地区编号的映射表中提取对应的归属地。13.一种归属地查询系统,其特征在于,该系统包括:号段提取模块,用于从待查询号码中提取运营商号段和地区号段;归属地查询模块,用于根据提取的所述运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。14.根据权利要求13所述归属地查询系统,其特征在于,所述归属地和地区编号的映射表通过以下方式建立:对归属地进行地区编号,并对所述地区编号用9个二进制位bit来。

11、编码;创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来权 利 要 求 书CN 103425669 A3/3页4编码,并按照地区编号的大小顺序依次存放。15.根据权利要求13所述归属地查询系统,其特征在于,所述运营商号段表、以及地区号段和地区编号的映射总表通过以下方式建立:创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;将所述每个运营商号段下的地区号段和地区。

12、编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表。16.根据权利要求13、14或15所述归属地查询系统,其特征在于,所述归属地查询模块还用于,根据提取的运营商号段查询所述运营商号段表,得到对应的序号;根据得到的序号、以及提取的地区号段计算目标地区编号在所述映射总表中的字节偏移位置和bit偏移位置,并依此从所述映射总表提取9bit的目标地区编号。17.根据权利要求16所述归属地查询系统,其特征在于,所述地区号段的范围为00009999,目标地区编号在所述映射总表中的字节偏移位置为:(10000(x-1)+y)9/8;目标地区编号在所述映射总表中。

13、的bit偏移位置为:(10000(x-1)+y)9;其中,x表示运营商号段所对应的序号,y表示从待查询号码中提取的地区号段。18.根据权利要求17所述归属地查询系统,其特征在于,所述归属地查询模块还用于,将得到的地区编号减1后与所述固定长度相乘,计算得到对应的归属地在所述归属地和地区编号的映射表中的字节偏移位置,并依此从所述归属地和地区编号的映射表中提取对应的归属地。权 利 要 求 书CN 103425669 A1/8页5号段及归属地的编码方法和系统、 归属地查询方法和系统技术领域0001 本发明涉及来/去电号码的归属地查询技术领域,尤其涉及一种号段及归属地的编码方法和系统、归属地查询方法和系。

14、统。背景技术0002 目前的智能手机通常都具备来/去电归属地查询和显示功能,所谓归属地是指来/去电号码的所属地区,如:归属地为北京、上海等等;该功能通过智能手机读取本地数据库来获取号码的归属地,或者通过网络实时查询数据库来获取号码的归属地。该数据库中主要包括号段及其对应的归属地,其中,号段一共包括七位数字,前三位是运营商号段,后四位是地区号段,例如:在一个“1390025”的号段中,前三位的“139”是运营商号段,后四位的“0025”是地区号段。截止到2011年底已经超出250000条对应关系,如果按照号段占用7个字节,归属地平均占用13个字节,那么总数据量已经超过5M(兆)。这样的数据量相对。

15、于终端软件包的大小以及移动带宽和流量套餐而言,都是巨大的,因此不适合嵌入到终端软件包中,也不适合经常在线更新,对来/去电需要实时查询显示时,从如此大的数据库里去查找结果,其性能也达不到常规需求。0003 针对上述问题,现有技术中提出的一种解决方法是,先将归属地进行地区编号(如北京编号为1,天津编号为2等等),对于连续的号段如果其归属地相同,则进行合并,并增加相同个数的描述;对每个号段提取前三位的运营商号段形成分类表,最后保存时采用双字节(byte)的其中9位(bit)来表示地区编号,其余7位来表示归属地相同的连续号段的个数。0004 该方法由于对归属地相同的连续号段进行了合并,因此使得号段和归。

16、属地的数据量得到压缩;但是对归属地相同的连续号段进行合并后,就无法直接根据地区号段定位到地区编号的保存位置。因为,在查找号段对应的地区编号时,对于每一个运营商号段对应的分类表,都需要将所有数据装载进去,然后将归属地相同的连续号段的个数累加起来,最后才能定位到目标地区号段对应的地区编号的保存位置。由于,该方法的查询时间与数据量的大小相关,因此,其查询时间通常都比较长,查询效率不高。发明内容0005 有鉴于此,本发明的主要目的在于提供一种号段及归属地的编码方法和系统、归属地查询方法和系统,以解决现有技术中号段及归属地的数据量大,归属地的查询效率低、查询时间长的问题。0006 为达到上述目的,本发明。

17、的技术方案是这样实现的:0007 本发明提供了一种号段及归属地的编码方法,该方法包括:0008 对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;0009 创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放;说 明 书CN 103425669 A2/8页60010 创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;0011 创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连。

18、续的方式依次存放;0012 将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表;0013 对所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表进行存储。0014 该方法进一步包括:0015 对于未知的归属地进行特殊编号,并对所述特殊编号用9bit来编码。0016 该方法进一步包括:0017 对存储的所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表,用压缩算法进行压缩。0018 本发明还提供了一种号段及归属地的编码系统,该系统包括:0019 第一映。

19、射表创建模块,用于对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放;0020 运营商号段表创建模块,用于创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;0021 第二映射表创建模块,用于创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号。

20、段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表;0022 存储模块,用于对所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表进行存储。0023 所述第一映射表创建模块还用于,对于未知的归属地进行特殊编号,并对所述特殊编号用9bit来编码。0024 该系统还包括压缩模块,用于对存储的所述归属地和地区编号的映射表、运营商号段表、以及所述地区号段和地区编号的映射总表,用压缩算法进行压缩。0025 本发明还提供了一种归属地查询方法,该方法包括:0026 从待查询号码中提取运营商号段和地区号段;0027 根据提取的所述运营商号段和地区号段,查询运营商。

21、号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。0028 所述归属地和地区编号的映射表通过以下方式建立:0029 对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;0030 创建归属地和地区编号的映射表,且在所述映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放。0031 所述运营商号段表、以及地区号段和地区编号的映射总表通过以下方式建立:说 明 书CN 103425669 A3/8页70032 创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号。

22、的大小顺序排列,每个运营商号段用1个字节来编码;0033 创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;0034 将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表。0035 所述根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号,具体为:0036 根据提取的运营商号段查询所述运营商号段表,得到对应的序号;0037 根据得到的序号、以及提取的地区号段计算目标地区编号。

23、在所述映射总表中的字节偏移位置和bit偏移位置,并依此从所述映射总表提取9bit的目标地区编号。0038 所述地区号段的范围为00009999,0039 目标地区编号在所述映射总表中的字节偏移位置为:(10000(x-1)+y)9/8;0040 目标地区编号在所述映射总表中的bit偏移位置为:(10000(x-1)+y)9;0041 其中,x表示运营商号段所对应的序号,y表示从待查询号码中提取的地区号段。0042 所述根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地,具体为:0043 将得到的地区编号减1后与所述固定长度相乘,计算得到对应的归属地在所述归属地和地区编号的映射表中。

24、的字节偏移位置,并依此从所述归属地和地区编号的映射表中提取对应的归属地。0044 本发明还提供了一种归属地查询系统,该系统包括:0045 号段提取模块,用于从待查询号码中提取运营商号段和地区号段;0046 归属地查询模块,用于根据提取的所述运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。0047 所述归属地和地区编号的映射表通过以下方式建立:0048 对归属地进行地区编号,并对所述地区编号用9个二进制位bit来编码;0049 创建归属地和地区编号的映射表,且在所述映射表中每个归属地。

25、用固定长度的字节来编码,并按照地区编号的大小顺序依次存放。0050 所述运营商号段表、以及地区号段和地区编号的映射总表通过以下方式建立:0051 创建运营商号段表,且在所述运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;0052 创建每个运营商号段下的地区号段和地区编号的映射表,且在所述映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;0053 将所述每个运营商号段下的地区号段和地区编号的映射表,按照所述运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表。0054 所述归属地查询模块还。

26、用于,0055 根据提取的运营商号段查询所述运营商号段表,得到对应的序号;0056 根据得到的序号、以及提取的地区号段计算目标地区编号在所述映射总表中的字说 明 书CN 103425669 A4/8页8节偏移位置和bit偏移位置,并依此从所述映射总表提取9bit的目标地区编号。0057 所述地区号段的范围为00009999,0058 目标地区编号在所述映射总表中的字节偏移位置为:(10000(x-1)+y)9/8;0059 目标地区编号在所述映射总表中的bit偏移位置为:(10000(x-1)+y)9;0060 其中,x表示运营商号段所对应的序号,y表示从待查询号码中提取的地区号段。0061 。

27、所述归属地查询模块还用于,将得到的地区编号减1后与所述固定长度相乘,计算得到对应的归属地在所述归属地和地区编号的映射表中的字节偏移位置,并依此从所述归属地和地区编号的映射表中提取对应的归属地。0062 本发明所提供的一种号段及归属地的编码方法和系统,能够降低号段及归属地的数据量大小;一种归属地查询方法和系统,能够提高归属地的查询效率、缩短查询时间。附图说明0063 图1为本发明实施例的一种号段及归属地的编码方法的流程图;0064 图2为本发明实施例的一种号段及归属地的编码系统的结构示意图;0065 图3为本发明实施例的一种归属地查询方法的流程图;0066 图4为本发明实施例的一种归属地查询系统。

28、的结构示意图。具体实施方式0067 下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。0068 为实现降低号段及归属地的数据量大小,本发明的实施例提供了一种号段及归属地的编码方法,如图1所示,该方法主要包括:0069 步骤101,对归属地进行地区编号,并对该地区编号用9个二进制位(bit)来编码。0070 将归属地信息表中的所有归属地进行连续编号,一般从1开始,如:北京的编号为1、上海的编号为2等等;对于未知的归属地(即未知地区)也需要进行特殊编号,如特殊编号为0,并对特殊编号也用9bit来编码。由于目前全国的不同归属地大约有360多个,不超过512个,因此用9bit来对地区编号进行编。

29、码表示已经足够。归属地、地区编号及其对应的bit编码,如下表所示:0071 归属地 地区编号 地区编号的bit编码未知的归属地 0 000000000北京 1 000000001上海 2 000000010江苏南京 3 000000011. . .0072 步骤102,创建归属地和地区编号的映射表,且在该映射表中每个归属地用固定长说 明 书CN 103425669 A5/8页9度的字节来编码,并按照地区编号的大小顺序依次存放。0073 归属地用字符串表示,对齐到字节,长度一般用字节表示,比如32字节。在归属地和地区编号的映射表中,每个归属地都用相同的且固定长度的字节来进行编码表示,且每个归属地。

30、的编码都按照地区编号的大小顺序依次存放,例如:固定长度为32字节,那么在归属地和地区编号的映射表中,北京的32字节编码、上海的32字节编码依次(即按照地区编号从小到大的顺序)连续存放。这样,在通过地区编号查找对应的归属地时,只需要将地区编号减1后与固定长度相乘,即可计算得到对应的归属地在所述映射表中的字节偏移位置,进而依据计算所得的字节偏移位置和固定长度,从所述映射表中提取对应的归属地。0074 步骤103,创建运营商号段表,且在该运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码。0075 手机号码的前三位为运营商号段,截止2011年底大概有2。

31、8个运营商号段,实际应用中的运营商号段在130190之间,不超过256,因此,可以用于1个字节来进行编码表示。0076 在运营商号段表中,各个运营商号段用序号标注,如:130的序号为1,131的序号为2,以此类推;各运营商号段按照为其分配的序号的从小到大顺序进行排列。0077 步骤104,创建每个运营商号段下的地区号段和地区编号的映射表,且在该映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放。0078 手机号码的第47位为地区号段,对于每个运营商号段,都可以对应有10000个地区号段,从00009999。在所述映射表中,地区编号的9bit编码按照地区号段的从小到大。

32、顺序以bit连续的方式依次存放,例如:0000所对应地区编号的9bit编码、0001所对应地区编号的9bit编码等等,依次连续存放在所述映射表中,以此类推。这样就得到针对每个运营商号段下的地区号段和地区编号的映射表,所占空间大小固定,为100009/811250字节,约为11k。0079 需要说明的是,由于不同的运营商号段下,地区号段和地区编号的映射关系是不同的,例如:在130的运营商号段下,0000的地区号段对应的地区编号为1(即北京),而在187的运营商号段下,0000的地区号段对应的地区编号为2(即上海);因此,本发明的实施例需要分别创建每个运营商号段下的地区号段和地区编号的映射表。00。

33、80 步骤105,将每个运营商号段下的地区号段和地区编号的映射表,按照运营商号段表中的运营商号段的排列顺序依次存放,得到地区号段和地区编号的映射总表。0081 即地区号段和地区编号的映射总表中包括每个运营商号段下的地区号段和地区编号的映射表,且这些映射表是按照运营商号段表中的运营商号段的排列顺序依次存放的。以目前28个运营商号段来计算,该映射总表的数据量大小约为300k。0082 步骤106,对归属地和地区编号的映射表、运营商号段表、以及地区号段和地区编号的映射总表进行存储。0083 将创建的归属地和地区编号的映射表、运营商号段表、以及地区号段和地区编号的映射总表存储到文件或其他存储单元中,需。

34、要加上必要的表的定位数据,例如:在文件头增加归属地和地区编号的映射表、运营商号段表、以及地区号段和地区编号的映射总表的定位数据,用以指示文件中各表的位置。如此一来,存储数据的数据量大小在300k左右。0084 较佳的,还可以对存储的归属地和地区编号的映射表、运营商号段表、以及所述地说 明 书CN 103425669 A6/8页10区号段和地区编号的映射总表,用压缩算法(如常用的zip压缩算法)进一步压缩,压缩后的数据量大小约为100k。0085 需要说明的是,如果是在线更新,则需要进行压缩,在线更新完毕后,再解压缩,这样数据流量少,传输快,适合带宽不高的移动网络。如果上述存储数据附在软件包中,。

35、则一般的平台在打包时都会对整个软件包用通用的压缩算法进行压缩,因此,这种情况无需额外的压缩,而只需将未压缩的存储数据附在软件包中,只需一次对整个软件包的压缩即可。0086 由此可以看出,通过本发明实施例的编码方法,只有300k左右的数据量,而实际传输或打包时压缩后只有100k左右的数据量,因此对软件包的大小和网络传输都不会造成太大的压力。0087 对应上述号段及归属地的编码方法,本发明的实施例还提供了一种号段及归属地的编码系统,如图2所示,该系统主要包括:第一映射表创建模块10、运营商号段表创建模块20、第二映射表创建模块30和存储模块40。0088 其中,第一映射表创建模块10,用于对归属地。

36、进行地区编号,并对地区编号用9bit来编码;创建归属地和地区编号的映射表,且在该映射表中每个归属地用固定长度的字节来编码,并按照地区编号的大小顺序依次存放;0089 运营商号段表创建模块20,用于创建运营商号段表,且在该运营商号段表中,各个运营商号段用序号标注,并按照序号的大小顺序排列,每个运营商号段用1个字节来编码;0090 第二映射表创建模块30,用于创建每个运营商号段下的地区号段和地区编号的映射表,且在该映射表中地区编号的9bit编码按照地区号段的大小顺序以bit连续的方式依次存放;将每个运营商号段下的地区号段和地区编号的映射表,按照运营商号段表中的运营商号段的排列顺序依次存放,得到地区。

37、号段和地区编号的映射总表;0091 存储模块40,连接第一映射表创建模块10、运营商号段表创建模块20和第二映射表创建模块30,用于对归属地和地区编号的映射表、运营商号段表、以及地区号段和地区编号的映射总表进行存储。0092 较佳的,第一映射表创建模块10还用于,对于未知的归属地进行特殊编号,如特殊编号为0,并对该特殊编号用9bit来编码。0093 较佳的,该系统还可以包括压缩模块50,连接存储模块40,用于对存储的归属地和地区编号的映射表、运营商号段表、以及地区号段和地区编号的映射总表,用压缩算法进行压缩。0094 为实现提高归属地的查询效率、缩短查询时间,本发明的实施例还提供了一种归属地查。

38、询方法,如图3所示,该方法主要包括:0095 步骤301,从待查询号码中提取运营商号段和地区号段。0096 手机号码的前三位是运营商号段,第47位是地区号段。0097 步骤302,根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和地区编号的映射总表,得到对应的地区编号;并根据得到的地区编号查询归属地和地区编号的映射表,得到对应的归属地。0098 其中,归属地和地区编号的映射表、运营商号段表、地区号段和地区编号的映射总表可以通过图1所示实施例中的方法来创建,此处不再赘述。0099 较佳的,根据提取的运营商号段和地区号段,查询运营商号段表、以及地区号段和说 明 书CN 103425669 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1