首页> 中国专利> 号段及归属地的编码方法和系统、归属地查询方法和系统

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

摘要

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

著录项

  • 公开/公告号CN103425669A

    专利类型发明专利

  • 公开/公告日2013-12-04

    原文格式PDF

  • 申请/专利权人 北京安管佳科技有限公司;

    申请/专利号CN201210153064.6

  • 发明设计人 叶纪平;石磊;

    申请日2012-05-16

  • 分类号G06F17/30(20060101);

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

  • 代理人蒋雅洁;程立民

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

  • 入库时间 2024-02-19 21:10:10

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-03

    授权

    授权

  • 2013-12-25

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20120516

    实质审查的生效

  • 2013-12-04

    公开

    公开

说明书

技术领域

本发明涉及来/去电号码的归属地查询技术领域,尤其涉及一种号段及归属 地的编码方法和系统、归属地查询方法和系统。

背景技术

目前的智能手机通常都具备来/去电归属地查询和显示功能,所谓归属地是 指来/去电号码的所属地区,如:归属地为北京、上海等等;该功能通过智能手 机读取本地数据库来获取号码的归属地,或者通过网络实时查询数据库来获取 号码的归属地。该数据库中主要包括号段及其对应的归属地,其中,号段一共 包括七位数字,前三位是运营商号段,后四位是地区号段,例如:在一个 “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所示的查询 系统应用于网络的服务端内部。

综上所述,本发明实施例所提供的号段及归属地的编码方法和系统,能够 降低号段及归属地的数据量大小;本发明实施例所提供的归属地查询方法和系 统,能够提高归属地的查询效率、缩短查询时间。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号