发明名称 一种面向MapReduce框架的地理归属信息查询方法
摘要 本发明公开了一种面向MapReduce框架的地理归属信息查询方法,包括以下步骤:设计IP地址转换地理归属信息编码表T<sub>IP</sub>,IP地址转换地理归属信息编码表T<sub>IP</sub>采用一维数组实现,每个数组元素是一个整数G,数组下标x是通过IP地址转换得到的整数;设计地理归属信息编码详情表,具体包括国家编码详情表T<sub>CODE_COUNTRY</sub>、省/区编码详情表T<sub>CODE_REGION</sub>、城市编码详情表T<sub>CODE_CITY</sub>以及运营商编码详情表T<sub>CODE_ISP</sub>;利用IP地址转换地理归属信息编码表T<sub>IP</sub>和4个地理归属信息编码详情表,查询IP地址的对应地理归属信息编码或详情,利用位运算和寻址操作加快查询的速度;构建基于Web面向MapReduce框架的查询服务,为并发计算环境的海量数据处理提供支持。本发明具有查询过程速度快,占用存储空间少的优点。
申请公布号 CN104102707B 申请公布日期 2016.03.30
申请号 CN201410328449.0 申请日期 2014.07.10
申请人 西安交通大学 发明人 张未展;贺欢;薛妮;郑庆华;董博
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 陆万寿
主权项 一种面向MapReduce框架的地理归属信息查询方法,其特征在于,包括下述步骤:(1)设计IP地址转换地理归属信息编码表T<sub>IP</sub>,IP地址转换地理归属信息编码表T<sub>IP</sub>采用一维数组实现,每个数组元素是一个整数G,数组下标x是通过IP地址转换得到的整数;其中,IP地址转换地理归属信息编码表T<sub>IP</sub>中,IP地址转换数组下标x的方法是:将IP地址表达为a.b.c.d四个整数的形式,每一位的取值均为0至255的整数,利用IP地址网络区域划分的特点,使用a,b,c三位能够定位到城市的地理归属信息,按如下方式将IP地址转换为整数作为数组的下标x:数组下标x=a×256<sup>3</sup>+b×256<sup>2</sup>+c×256;IP地址转换地理归属信息编码表T<sub>IP</sub>的数组长度为2<sup>24</sup>=16711680,按照该换算方法,每个IP地址通过转换都在该数组中对应一个整数,不会发生数组下标越界;(2)设计地理归属信息编码详情表,具体包括4个表,分别是国家编码详情表T<sub>CODE_COUNTRY</sub>、省/区编码详情表T<sub>CODE_REGION</sub>、城市编码详情表T<sub>CODE_CITY</sub>以及运营商编码详情表T<sub>CODE_ISP</sub>;(3)利用步骤(1)中设计的IP地址转换地理归属信息编码表T<sub>IP</sub>和步骤(2)中设计的4个地理归属信息编码详情表,设计查询IP地址的对应地理归属信息编码或者详情的算法;包括以下步骤:31)计算IP地址对应的整数值x,按照步骤(1)中设计的转换公式,对IP地址a.b.c.d进行换算,具体方法如下:Step 1对a执行操作左移24位;Step 2对b执行操作左移16位;Step 3对c执行操作左移8位;Step 4对a和b执行按位或操作,将结果保存在x中;Step 5对x和c执行按位或操作,将结果保存在x中;上述5步执行完成后,x为IP地址对应的整数值,整个换算过程使用3次移位计算和2次按位或计算即可完成;32)以该整数x为下标,在IP地址转换地理归属信息编码表T<sub>IP</sub>中进行寻址操作,得到IP地址转换地理归属信息编码表T<sub>IP</sub>中对应的数组元素,该元素即为IP地址对应的地理归属信息的编码G,如果不需要将编码G逐个分解到国家、省/区、城市和运营商的形式,则在此返回G即可完成查询过程,如果需要分解查询结果G,则进行下一步;33)对该整数编码G分解,得到具体的地理归属信息编码组C,C是一个数组,共有4个元素,分别是国家编码C<sub>COUNTRY</sub>,省/区编码C<sub>REGION</sub>,城市编码C<sub>CITY</sub>,运营商编码C<sub>ISP</sub>,具体的操作参数按照下表进行:<tables num="0001" id="ctbl0001"><table><tgroup cols="3"><colspec colname="c001" colwidth="18%" /><colspec colname="c002" colwidth="59%" /><colspec colname="c003" colwidth="23%" /><tbody><row><entry morerows="1">分解目标</entry><entry morerows="1">操作参数的二进制形式</entry><entry morerows="1">十进制形式</entry></row><row><entry morerows="1">国家</entry><entry morerows="1">11111111 00000000 00000000 00000000</entry><entry morerows="1">4278190080</entry></row><row><entry morerows="1">省/区</entry><entry morerows="1">00000000 11111111 00000000 00000000</entry><entry morerows="1">16711680</entry></row><row><entry morerows="1">城市</entry><entry morerows="1">00000000 00000000 11111111 10000000</entry><entry morerows="1">65408</entry></row><row><entry morerows="1">运营商</entry><entry morerows="1">00000000 00000000 00000000 01111111</entry><entry morerows="1">127</entry></row></tbody></tgroup></table></tables>Step 1对G和4278190080执行按位与操作,再将结果右移24位,保存在C<sub>COUNTRY</sub>中;Step 2对G和16711680执行按位与操作,再将结果右移16位,保存在C<sub>REGION</sub>中;Step 3对G和65408执行按位与操作,再将结果右移7位,保存在C<sub>CITY</sub>中;Step 4对G和127执行按位与操作,将结果保存在C<sub>ISP</sub>中;上述4步执行完成后,C即是IP地址对应的地理归属信息编码组,整个过程使用4次按位与操作和3次移位操作完成,如果不需要将编码转换为文字详情,则在此返回C即可完成查询过程,如果需要查询文字详情,则进行下一步将编码转换为详情;34)将地理归属信息编码组C中的每个数值作为下标,在地理归属信息编码详情表中查询地理归属信息的详情组D,D是一个数组,共有4个元素,分别是国家编码详情D<sub>COUNTRY</sub>,省/区编码详情D<sub>REGION</sub>,城市编码详情D<sub>CITY</sub>,运营商编码详情D<sub>ISP</sub>,具体过程如下:Step 1以国家编码C<sub>COUNTRY</sub>作为数组下标,在国家编码详情表T<sub>CODE_COUNTRY</sub>中执行寻址操作,将得到的数组元素保存在D<sub>COUNTRY</sub>中;Step 2以国家编码C<sub>COUNTRY</sub>作为数组一维下标,以省/区编码C<sub>REGION</sub>作为数组二维下标,在省/区编码详情表T<sub>CODE_REGION</sub>中执行寻址操作,将得到的数组元素保存在D<sub>REGION</sub>中;Step 3以国家编码C<sub>COUNTRY</sub>作为数组一维下标,以省/区编码C<sub>REGION</sub>作为数组二维下标,以城市编码C<sub>CITY</sub>为三维下标,在城市编码详情表T<sub>CODE_CITY</sub>中执行寻址操作,将得到的数组元素保存在D<sub>CITY</sub>中;Step 4以国家编码C<sub>COUNTRY</sub>作为数组一维下标,以运营商编码C<sub>ISP</sub>作为数组二维下标,在运营商编码详情表T<sub>CODE_ISP</sub>中执行寻址操作,将得到的数组元素保存在D<sub>ISP</sub>中;上述4步执行完成后,D即是IP地址对应的地理归属信息详情数组,整个过程使用4次寻址操作完成,将D返回,整个查询过程结束;(4)利用步骤(3)中设计的查询算法,构建基于Web面向MapReduce框架调用环境的查询服务,包括以下步骤:41)启动基于HTTP协议传输数据的Web服务器,监听指定服务端口,等待查询IP地址的地理归属信息的请求;42)接受来自客户端的IP查询请求,请求方需要提供两个参数,第一个是待查询的IP地址字符串,第二个是查询结果的返回形式;查询结果的返回形式包括:i、地理信息编码形式,即一个整数;ii、地理信息编码组形式,即一个包含4个整数的数组;iii、地理信息编码详情形式,即一个包含4个字符串的数组;43)调用步骤(3)中的查询算法来处理请求的IP地址,并对查询结果按照步骤42)规定的返回形式进行处理;44)向请求方返回查询指定形式结果。
地址 710049 陕西省西安市咸宁西路28号