一种ip定位方法和装置的制造方法

文档序号:8226176阅读:184来源:国知局
一种ip定位方法和装置的制造方法
【技术领域】
[0001]本发明属于定位领域,尤其涉及一种IP定位方法和装置。
【背景技术】
[0002]在使用手机或者电脑上网获取信息时,通常需要根据手机或者电脑接入点的IP地址确定用户所在的位置,以提供更为准确的资源服务。比如在查找与用户所在位置对应的信息,比如天气情况或者所在地的其它活动,如团购等。
[0003]为了获取用户所在地的位置信息,对于手机用户,则可以通过GPS卫星定位系统或者基站定位获取其位置信息。当不具备GPS卫星定位系统或者基站定位硬件时,则需要通过IP进行定位。
[0004]现有的IP定位方法,一般是通过在IP数据库中查找IP所对应的位置,比如IP对应的城市。但是,由于IP数据库中存储的IP数量巨多,需要存储IP数据的空间较大,而且当在云平台大并发的IP定位查询时,查询效率较低,影响定位查询性能。

【发明内容】

[0005]本发明的目的在于提供一种IP定位方法和装置,以解决现有技术由于IP数据库中存储的IP数量巨多,需要存储IP数据的空间较大,而且当在云平台大并发的IP定位查询时,查询效率较低,影响定位查询性能的问题。
[0006]本发明是这样实现的,一种IP定位方法,所述方法包括:
[0007]接收IP地址定位请求,所述请求包括请求定位的IP地址;
[0008]根据预设的IP地址与数值的对应关系,计算所述请求定位的IP地址对应的请求数值;
[0009]根据预先按序存储的数值与位置信息的对应关系,查找所述请求数值对应的位置信息。
[0010]本发明的另一目的在于提供一种IP定位装置,所述装置包括:
[0011]请求接收单元,用于接收IP地址定位请求,所述请求包括请求定位的IP地址;
[0012]数值计算单元,用于根据预设的IP地址与数值的对应关系,计算所述请求定位的IP地址对应的请求数值;
[0013]位置信息查找单元,用于根据预先按序存储的数值与位置信息的对应关系,查找所述请求数值对应的位置信息。
[0014]在本发明中,通过IP地址与数值的对应关系,计算所述IP地址定位请求中包括的请求定位的IP地址对应的请求数值,根据所述请求数值,根据按序存储的数值与位置信息的对应关系,查找对应的位置信息。本发明通过将IP地址转化为数值进行查找,可以大大提高查找的效率,而且将所述IP地址转化为数值,可减少所述IP地址存储所占用的空间。
【附图说明】
[0015]图1是本发明第一实施例提供的IP定位方法的实现流程图;
[0016]图2是本发明第二实施例提供的IP定位方法的实现流程图;
[0017]图3是本发明第三实施例提供的IP定位装置的结构示意图。
【具体实施方式】
[0018]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0019]本发明实施例的主要目的在于克服现有技术中在使用IP地址进行定位时,由于IP地址的数量非常多,如果根据逐个IP中的符号进行比较,则需要多次的查找,查找效率较低,而且多段的IP地址存储占用较多的内存空间的问题。
[0020]为解决上述问题,本发明提出了一种IP定位方法,所述方法包括:接收IP地址定位请求,所述请求包括请求定位的IP地址;根据预设的IP地址与数值的对应关系,计算所述请求定位的IP地址对应的请求数值;根据预先按序存储的数值与位置信息的对应关系,查找所述请求数值对应的位置信息。
[0021 ] 通过将IP地址转化为请求数值,可以节省所述IP地址在内存中的存储空间,并且按序存储的对应关系,可以便于快速的查找所述请求数值对应的位置信息,提高IP地址查找位置信息的效率。下面结合附图具体说明。
[0022]图1示出了本发明实施例提供的IP定位方法的实现流程,详述如下:
[0023]在步骤SlOl中,接收IP地址定位请求,所述请求包括请求定位的IP地址。
[0024]具体的,所述定位请求,可以为客户端的应用程序或者网页发送的定位请求,比如在使用区分区域资源的应用程序时,由应用程序发送的定位请求。
[0025]所述IP地址(中文全称为:互联网协议地址,英文全称为:Internet ProtocolAddress),是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a, b, c, d都是O?255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是 32 位二进制数(01100100.00000100.00000101.00000110)。
[0026]在步骤S102中,根据预设的IP地址与数值的对应关系,计算所述请求定位的IP地址对应的请求数值。
[0027]具体的,所述IP地址与数值的对应关系,可以包括多种对应的计算关系,比如一种优选的实施方式中:所述根据预设的IP地址与数值的对应关系,计算所述请求定位的IP地址对应的请求数值步骤具体为:
[0028]所述请求定位的IP地址为a.b.c.d,所述IP地址对应的256进制的数值大小为a*256的三次方+b*256的平方+c*25+d。
[0029]由于IP地址的每一段的最大值为256,因此,通过上述计算方式,可以使得所有的IP地址与一个连续的数值对应,而且该数值通过上述计算关系可以直接求取。
[0030]当然,所述IP地址对应的256进制的数值大小为d*256的三次方+c*256的平方+b*25+a,本发明不作具体限定。
[0031]比如,对于点分十进IP地址(100.4.5.6),其对应的十进制数值则可以表达为:6+5*256+4*256*256+100*256*256*256。直接使用256进制数值表达则可以为100.4.5.6,此处使用点号将每个256位的数值进行分隔,以免造成混淆。如果使用二进制数值进行表达的话则可以不需要进行分割,而可以直接进行表达,比如100.4.5.6则可以直接表达为:(01100100000001000000010100000110)。
[0032]在步骤S103中,根据预先按序存储的数值与位置信息的对应关系,查找所述请求数值对应的位置信息。
[0033]具体的,所述预先存储的数值与位置信息的对应关系,根据所述数值的大小依次进行存储,比如可以为从小到大进行排序存储,也可以从大到小进行排序存储。
[0034]所述位置信息,可以根据定位的要求具体进行调整,比如对于定位要求高的定位算法中,所述预存的数值与位置信息的对应关系,可以具体到每个城区、乡镇与数值的对应关系。而对于定位要求较低的定位算法中,则可以粗略定位的城市或者省市即可。在一般定位算法中,所述位置信息可以为城市名称。
[0035]所述位置信息与数值的对应关系,可以根据定位的精度要求而选择不同的对应关系,比如对于定位精度非常高的定位操作中,可以建立所述位置信息与数值的一一对应关系,当所述定位要求不是特别精确,则可以建立所述位置信息与数值区间的对应关系,比如对于城市定位、区县级定位等,可以建立一个位置信息对应多个数值构成的数值区间。
[0036]当然,还可以根据实际应用的需要,使得一个IP地址对应多个不同范围的地址信息,比如一个IP地址可以对应城市的位置信息,也可以对应城市里的城区位置信息,或者还可以对应具体的街道大楼的位置信息。
[0037]与此相应的,作为本发明进一步优化的实施方式中,所述预先按序存储的数值与位置信息的对应关系具体为:预先存储的数值区间与位置信息的对应关系。
[0038]所述预先存储的数值区间与位置信息的对应关系,即一个位置信息对应一个数值区间,当然也可能一个位置对应两个以上的数值区间。比如位置信息如“北京”,其对应的IP地址可能包括10.0.0.0至10.0.100.0,那么存储所述IP地址位置信息的对应关系,只需要存储数值区间,即IP地址的起始地址对应的数值和IP地址的结束地址对应的数值即可。从而可以大大减少数据的存储量,而且数值区间越大,节省的存储空间越多,查找也更加方便。
[0039]查找所述请求数值对应的位置信息,可以采用二分法查找所述请求数值对应的位置信息。当然,不局限于此,可以采用三分或者其它方法对有序数据的查找。
[0040]比如,对于每个地址信息对应一个IP地址时采用的二分法查找过程可以简述如下:如果在数值区间[0,a]中查找数据b的位置,则可以先比较a/2与b的大小,如果a/2大于b,则在[0,a/2]中继续比较查找,如果a/2小于b,则在[a/2,b]中继续查找,如果a/2=b,则停止查找。如果查找到最后没有查找到与b相同的数值,则说明在数据库中没有记录该IP地址对应的位置信息,中止所述位置信息的查找。
[0041]当所述位置信息与多个数值区间对应,即一个IP地址可能对应多个不同数值范围的区间时,则可以进一步提高二分查找法的查找效率,因为只需要查找IP地址对应的数值所在的数值区间,即可确定所述IP地址对应的位置。比如在使用二分法查找IP地址的数值b对应的数值区间时,查找的数值共包括[al,a2] [bl, b2] [cl, c2]这三个大的数值区间,查找b的位置,首先是找到找到其中一个数值区间[131>2],然后比较13、131汕2。
[0042]如果b〈bl,则再在数值区间[al,a2]里面再进一步用二分法查找;
[0043]如果bl〈b〈b2,那么在[bl,b2]里面再进一步二分法查找;
[0044]如果b>b2,那么在[cl, c2]里面再用二分法寻找。
[0045]这样不断掉的查找下去,得到的IP地址所对应的位置信息也会更加具体,比如先查找IP所对应的省级位置信息
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1