本发明涉及互联网技术,尤其涉及一种基于IP地址的定位方法及装置。
背景技术:
IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,在因特网(Internet)中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在Internet上进行通信时应当遵守的规则。因此,IP也可以叫做“因特网协议”。IP地址被用来给Internet上的终端一个编号,每台联网的终端上都需要有IP地址,才能正常通信。
现有技术中,可以利用请求端提供的IP地址,查询IP地址数据库,获取该IP地址所在的区域,例如,省份、城市等,但是,定位效率低。
技术实现要素:
本发明的多个方面提供一种基于IP地址的定位方法及装置,用以提高定位效率。
本发明的一方面,提供一种基于IP地址的定位方法,包括:
获取终端的定位请求消息,所述定位请求消息中包含所述终端的IP地址;
利用所述终端的至少一个缓存IP地址数据库,获得本次定位结果;
输出所述本次定位结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述利用所述终端的至少一个缓存IP地址数据库,获得本次定位结果,包括:
若所述终端的至少一个缓存IP地址数据库中每个缓存IP地址数据库均为空,进行基于所述IP地址的定位处理,以获得本次定位结果;将所述IP地址、所述本次定位结果和定位时间,存储到所述至少一个缓存IP地址数据库中任一缓存IP地址数据库;
若所述终端的至少一个缓存IP地址数据库中任一缓存IP地址数据库不为空,且所述IP地址在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,且所述IP地址所对应的定位时间距离当前时间的时间差值小于或等于预先设置的时间阈值,将所述一个缓存IP地址数据库中的所述IP地址所对应的平均定位结果,作为本次定位结果;
若所述终端的至少一个缓存IP地址数据库中任一缓存IP地址数据库不为空,且所述IP地址不在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,或者且所述IP地址在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,且所述IP地址所对应的定位时间距离当前时间的时间差值大于所述时间阈值,进行基于所述IP地址的定位处理,以获得本次定位结果;将所述IP地址、所述本次定位结果和所述定位时间,存储到所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述将所述IP地址、所述本次定位结果和所述定位时间,存储到所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库,包括:
根据所述本次定位结果和所述每个缓存IP地址数据库中所述IP地址所对应的平均定位结果,获得与所述本次定位结果之间的间隔距离最小的平均定位结果所属的缓存IP地址数据库;
若所述IP地址在所述间隔距离最小的平均定位结果所属的缓存IP地址数据库中,或者所述间隔距离小于或等于预先设置的距离阈值,利用所述IP地址、所述本次定位结果和所述定位时间,更新所述间隔距离最小的平均定位结果所属的缓存IP地址数据库;
若所述IP地址不在所述间隔距离最小的平均定位结果所属的缓存IP地址数据库中,且所述间隔距离大于所述距离阈值,
若所述至少一个缓存IP地址数据库中任一缓存IP地址数据库为空,将所述IP地址、所述本次定位结果和定位时间,存储到所述任一缓存IP地址数据库;
若所述至少一个缓存IP地址数据库中所述每个缓存IP地址数据库均不为空,清空更新时间最早的一个缓存IP地址数据库,将所述IP地址、所述本次定位结果和定位时间,存储到清空之后的缓存IP地址数据库。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述至少一个缓存IP地址数据库的数量为2。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述进行基于所述IP地址的定位处理,包括:
获得所述IP地址的IP地址类型;
根据所述IP地址的IP地址类型,获得所述IP地址所对应的位置数据,以作为所述本次定位结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述IP地址的IP地址类型包括第一类型、第二类型、第三类型或第四类型;其中,
所述第一类型为固定分配单中心点类型;
所述第二类型为动态分配单中心点类型;
所述第三类型为固定分配多中心点类型;
所述第四类型为动态分配多中心点类型。
本发明的另一方面,提供一种基于IP地址的定位装置,包括:
获取单元,用于获取终端的定位请求消息,所述定位请求消息中包含所述终端的IP地址;
定位单元,用于利用所述终端的至少一个缓存IP地址数据库,获得本次定位结果;
输出单元,用于输出所述本次定位结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述定位单元,具体用于
若所述终端的至少一个缓存IP地址数据库中每个缓存IP地址数据库均为空,进行基于所述IP地址的定位处理,以获得本次定位结果;将所述IP地址、所述本次定位结果和定位时间,存储到所述至少一个缓存IP地址数据库中任一缓存IP地址数据库;
若所述终端的至少一个缓存IP地址数据库中任一缓存IP地址数据库不为空,且所述IP地址在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,且所述IP地址所对应的定位时间距离当前时间的时间差值小于或等于预先设置的时间阈值,将所述一个缓存IP地址数据库中的所述IP地址所对应的平均定位结果,作为本次定位结果;
若所述终端的至少一个缓存IP地址数据库中任一缓存IP地址数据库不为空,且所述IP地址不在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,或者且所述IP地址在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,且所述IP地址所对应的定位时间距离当前时间的时间差值大于所述时间阈值,进行基于所述IP地址的定位处理,以获得本次定位结果;将所述IP地址、所述本次定位结果和所述定位时间,存储到所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述定位单元,具体用于
根据所述本次定位结果和所述每个缓存IP地址数据库中所述IP地址所对应的平均定位结果,获得与所述本次定位结果之间的间隔距离最小的平均定位结果所属的缓存IP地址数据库;
若所述IP地址在所述间隔距离最小的平均定位结果所属的缓存IP地址数据库中,或者所述间隔距离小于或等于预先设置的距离阈值,利用所述IP地址、所述本次定位结果和所述定位时间,更新所述间隔距离最小的平均定位结果所属的缓存IP地址数据库;
若所述IP地址不在所述间隔距离最小的平均定位结果所属的缓存IP地址数据库中,且所述间隔距离大于所述距离阈值,
若所述至少一个缓存IP地址数据库中任一缓存IP地址数据库为空,将所述IP地址、所述本次定位结果和定位时间,存储到所述任一缓存IP地址数据库;
若所述至少一个缓存IP地址数据库中所述每个缓存IP地址数据库均不为空,清空更新时间最早的一个缓存IP地址数据库,将所述IP地址、所述本次定位结果和定位时间,存储到清空之后的缓存IP地址数据库。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述至少一个缓存IP地址数据库的数量为2。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述定位单元,具体用于
获得所述IP地址的IP地址类型;
根据所述IP地址的IP地址类型,获得所述IP地址所对应的位置数据,以作为所述本次定位结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述IP地址的IP地址类型包括第一类型、第二类型、第三类型或第四类型;其中,
所述第一类型为固定分配单中心点类型;
所述第二类型为动态分配单中心点类型;
所述第三类型为固定分配多中心点类型;
所述第四类型为动态分配多中心点类型。
由上述技术方案可知,本发明实施例通过获取终端的定位请求消息,所述定位请求消息中包含所述终端的IP地址,进而利用所述终端的至少一个缓存IP地址数据库,获得本次定位结果,使得能够输出所述本次定位结果,由于采用缓存IP地址数据库,提供终端的本次定位结果,从而提高了定位效率。
另外,采用本发明所提供的技术方案,在所述终端的至少一个缓存IP地址数据库无法提供终端的本次定位结果时,通过获得待定位的IP地址的IP地址类型,进而根据所述IP地址的IP地址类型,获得所述IP地址所对应的位置数据,以作为终端的本次定位结果,由于不同类型的IP地址,具有不同的分布特点,因此,根据所识别出的IP地址的地址类型,执行基于IP地址的定位操作,能够获得精确的位置数据,从而提高了基于IP地址定位的定位精度。
另外,采用本发明所提供的技术方案,能够有效地提高用户的体验。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的基于IP地址的定位方法的流程示意图;
图2为本发明另一实施例提供的基于IP地址的定位装置的结构示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例中所涉及的终端可以包括但不限于手机、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(Tablet Computer)、个人电脑(Personal Computer,PC)、MP3播放器、MP4播放器、可穿戴设备(例如,智能眼镜、智能手表、智能手环等)等。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本发明一实施例提供的基于IP地址的定位方法的流程示意图,如图1所示。
101、获取终端的定位请求消息,所述定位请求消息中包含所述终端的IP地址。
102、利用所述终端的至少一个缓存IP地址数据库,获得本次定位结果。
103、输出所述本次定位结果。
需要说明的是,101~103的执行主体的部分或全部可以为位于本地终端的应用,或者还可以为设置在位于本地终端的应用中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元,或者还可以为位于网络侧服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,本实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在终端上的本地程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本实施例对此不进行特别限定。
这样,通过获取终端的定位请求消息,所述定位请求消息中包含所述终端的IP地址,进而利用所述终端的至少一个缓存IP地址数据库,获得本次定位结果,使得能够输出所述本次定位结果,由于采用缓存IP地址数据库,提供终端的本次定位结果,从而提高了定位效率。
本发明中,考虑到每个用户所使用终端的IP地址为有限数量,而每个用户在日常生活中具有固定的停留位置,例如,家、公司等。因此,可以分别设置对应每个停留位置的缓存IP地址数据库,作为终端的缓存IP地址数据库。其中,每个缓存IP地址数据库中,可以存储有一个停留位置和若干个终端的IP地址,以及更新时间。这个停留位置,还可以称为该缓存IP地址数据库的中心点,它是根据该缓存IP地址数据库中的每个IP地址的基于任一定位技术所获得的定位结果,计算出来的一个平均定位结果。
优选地,在本实施例的一个可能的实现方式中,终端的缓存IP地址数据库,的数量可以为2,即一个缓存IP地址数据库中所存储的停留位置为使用终端的用户的家所在位置,另一个缓存IP地址数据库中所存储的停留位置为使用终端的用户的公司所在位置。
可选地,在本实施例的一个可能的实现方式中,在102中,具体可以判断所述终端的至少一个缓存IP地址数据库中每个缓存IP地址数据库是否均为空。
在另一个具体的实现过程中,若所述终端的至少一个缓存IP地址数据库中每个缓存IP地址数据库均为空,则可以进行基于所述IP地址的定位处理,以获得本次定位结果;然后,则可以将所述IP地址、所述本次定位结果和定位时间,存储到所述至少一个缓存IP地址数据库中任一缓存IP地址数据库。
在另一个具体的实现过程中,若所述终端的至少一个缓存IP地址数据库中每个缓存IP地址数据库不是均为空,也就是说,所述终端的至少一个缓存IP地址数据库中任一缓存IP地址数据库不为空,且所述IP地址在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,且所述IP地址所对应的定位时间距离当前时间的时间差值小于或等于预先设置的时间阈值,则可以将所述一个缓存IP地址数据库中的所述IP地址所对应的平均定位结果即所述一个缓存IP地址数据库的中心点,作为本次定位结果。
在另一个具体的实现过程中,若所述终端的至少一个缓存IP地址数据库中每个缓存IP地址数据库不是均为空,也就是说,所述终端的至少一个缓存IP地址数据库中任一缓存IP地址数据库不为空,且所述IP地址不在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,则可以进行基于所述IP地址的定位处理,以获得本次定位结果;若所述终端的至少一个缓存IP地址数据库中每个缓存IP地址数据库不是均为空,也就是说,所述终端的至少一个缓存IP地址数据库中任一缓存IP地址数据库不为空,且所述IP地址在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,且所述IP地址所对应的定位时间距离当前时间的时间差值大于所述时间阈值,则可以进行基于所述IP地址的定位处理,以获得本次定位结果。
在该实现过程中,获得本次定位结果之后,则可以将所述IP地址、所述本次定位结果和所述定位时间,存储到所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库。
具体来说,具体可以根据所述本次定位结果和所述每个缓存IP地址数据库中所述IP地址所对应的平均定位结果,获得与所述本次定位结果之间的间隔距离最小的平均定位结果所属的缓存IP地址数据库。
例如,若所述IP地址在所述间隔距离最小的平均定位结果所属的缓存IP地址数据库中,或者所述间隔距离小于或等于预先设置的距离阈值,则可以利用所述IP地址、所述本次定位结果和所述定位时间,更新所述间隔距离最小的平均定位结果所属的缓存IP地址数据库。所谓的更新所述间隔距离最小的平均定位结果所属的缓存IP地址数据库,是指根据所述本次定位结果和该缓存IP地址数据库中的平均定位结果,获得新的平均定位结果。具体做法可以给所述本次定位结果与所述平均定位结果分别设置不同的权重,进行加权运算,以获得新的平均。
或者,再例如,若所述IP地址不在所述间隔距离最小的平均定位结果所属的缓存IP地址数据库中,且所述间隔距离大于所述距离阈值,还需要进一步判断在所述至少一个缓存IP地址数据库中,是有任一缓存IP地址数据库为空,还是所述每个缓存IP地址数据库均不为空。
若所述至少一个缓存IP地址数据库中任一缓存IP地址数据库为空,则可以将所述IP地址、所述本次定位结果和定位时间,存储到所述任一缓存IP地址数据库。
若所述至少一个缓存IP地址数据库中所述每个缓存IP地址数据库均不为空,则可以清空更新时间最早的一个缓存IP地址数据库,将所述IP地址、所述本次定位结果和定位时间,存储到清空之后的缓存IP地址数据库。
本发明中,所执行的进行基于所述IP地址的定位处理,具体可以采用现有技术中的任何技术方案,进行基于所述IP地址的定位处理。
例如,可以获得所述IP地址的IP地址类型,进而,则可以根据所述IP地址的IP地址类型,获得所述IP地址所对应的位置数据,以作为所述本次定位结果。这样,在所述终端的至少一个缓存IP地址数据库无法提供终端的本次定位结果时,通过获得待定位的IP地址的IP地址类型,进而根据所述IP地址的IP地址类型,获得所述IP地址所对应的位置数据,以作为终端的本次定位结果,由于不同类型的IP地址,具有不同的分布特点,因此,根据所识别出的IP地址的地址类型,执行基于IP地址的定位操作,能够获得精确的位置数据,从而提高了基于IP地址定位的定位精度。
具体来说,所述IP地址的IP地址类型,可以包括但不限于第一类型、第二类型、第三类型或第四类型,本实施例对此不进行特别限定。
举例来说,所述第一类型为固定分配单中心点类型;所述第二类型为动态分配单中心点类型;所述第三类型为固定分配多中心点类型;所述第四类型为动态分配多中心点类型。
所谓的固定分配单中心点类型,这种类型的IP地址是指给分布集中在一个区域的终端所分配的固定IP地址。例如,学校的某个校区、公司的某个办公大楼等场所的终端。
所谓的动态分配单中心点类型,这种类型的IP地址是指在指定时间范围之内给分布集中在一个区域的终端所分配的空闲IP地址。例如,小区的终端。
所谓的固定分配多中心点类型,这种类型的IP地址是指给分布集中在多个区域的终端所分配的固定IP地址,其分布的区域较少,一般不超过6个。例如,学校的全部校区、公司的全部办公大楼等场所的终端。
所谓的动态分配多中心点类型,这种类型的IP地址是指在指定时间范围之内给分布集中在多个区域的终端所分配的空闲IP地址,其分布的区域较多,一般至少有6个。例如,很多小区的终端。
在获得所述IP地址的IP地址类型之前,还可以进一步预先根据终端的大量历史定位数据,分析出每个IP地址所对应的IP地址类型,以供根据所接收的定位请求消息中所包含的终端的IP地址,获得该IP地址的IP地址类型。
具体来说,针对该IP地址,可以获取具有所述IP地址的终端的至少一个历史定位数据,所述至少一个历史定位数据中每个历史定位数据中包含网络连接指示。若所述每个历史定位数据中所包含的网络连接指示均指示终端上网连接为无线保真(Wireless Fidelity,Wi-Fi)网络连接,将所述至少一个历史定位数据,作为所述IP地址的采集点的采集点数据。进而,则可以根据所述IP地址的采集点的采集点数据,对所述IP地址的采集点,进行基于距离的密度聚类处理,以获得至少一个距离簇。然后,可以根据所述至少一个距离簇的分布数据,获得所述IP地址的IP地址类型。
在本发明中,所获取的历史定位数据,可以为采用任何定位方式获取终端的定位结果的相关记录数据,例如,全球定位系统(Global Positioning System,GPS)定位方式、Wi-Fi定位或基站定位等。具体来说,任一终端的历史定位数据可以包括但不限于终端的IP地址、定位时间、定位结果、以及网络连接指示,本实施例对此不进行特别限定。其中,所述网络连接指示,可以用于指示终端上网连接是否为Wi-Fi网络连接,例如,上网类型标识或是否有连接Wi-Fi网络指示等。
在一个具体的实现过程中,具体可以采集全部终端的历史定位数据,进而,则可以将相同IP地址作为若干个指定IP地址,获取具有所述IP地址的终端的所述至少一个历史定位数据。
在另一个具体的实现过程中,所述距离簇可以采用如下方式获得:根据所述IP地址的采集点的采集点数据中的定位结果即采集点的地理位置数据,对所述IP地址的采集点,以距离阈值,进行基于距离的密度聚类处理,以获得至少一个距离簇。
其中,所述距离阈值,可以为预先设置的经验值,或者还可以为根据所述IP地址的采集点的地理位置数据计算获得,本实施例对此不进行特别限定。
在另一个具体的实现过程中,在获得所述至少一个距离簇之后,具体可以根据所获得的距离簇的数量、分布等分布数据,获得所述IP地址的IP地址类型。
例如,若获得一个所述距离簇,则所述IP地址的IP地址类型为第一类型。
或者,再例如,若获得至少两个所述距离簇,且所述至少两个所述距离簇中每个距离簇在时间上为有序排列,则所述IP地址的IP地址类型为第二类型。
或者,再例如,若获得至少两个所述距离簇,且所述至少两个所述距离簇中每个距离簇在时间上为无序排列,且所述距离簇的数量小于或等于预先设置的数量阈值,则所述IP地址的IP地址类型为第三类型。
或者,再例如,若获得至少两个所述距离簇,且所述至少两个所述距离簇中每个距离簇在时间上为无序排列,且所述距离簇的数量大于预先设置的数量阈值,则所述IP地址的IP地址类型为第二类型或第四类型。具体来说,在实例中,具体可以根据所述IP地址的采集点的采集点数据,对所述IP地址的采集点,以时间阈值,进行基于时间的密度聚类处理,以获得至少一个时间簇。进而,则可以根据所述IP地址的采集点的采集点数据,对所述至少一个时间簇中每个时间簇内的采集点,进行基于距离的密度聚类处理,以获得所述每个时间簇内的至少一个子距离簇。若任一时间簇内获得一个所述子距离簇,则在所述任一时间簇内所述IP地址的IP地址类型为第一类型;若任一时间簇内获得至少两个所述子距离簇,且所述至少两个所述子距离簇中每个子距离簇在时间上为有序排列,则在所述任一时间簇内所述IP地址的IP地址类型为第二类型;若任一时间簇内获得至少两个所述子距离簇,且所述至少两个所述子距离簇中每个子距离簇在时间上为无序排列,且所述子距离簇的数量小于或等于预先设置的数量阈值,则在所述任一时间簇内所述IP地址的IP地址类型为第三类型。那么,若在所述每个时间簇内所述IP地址的IP地址类型为所述第一类型或所述第二类型,则所述IP地址的IP地址类型为第二类型;若在所述任一时间簇内所述IP地址的IP地址类型为第三类型,则所述IP地址的IP地址类型为第四类型。
在进行基于时间的密度聚类处理,还可以进一步获得所述基于时间的密度聚类处理的时间阈值。例如,可以获取所述IP地址的每个采集点的定位时间,进而,则可以根据所述IP地址的每个采集点的定位时间,获得所述IP地址的采集点转移时间如平均值,将所述采集点转移时间,作为所述基于时间的密度聚类处理的时间阈值。
这样,通过获取具有IP地址的终端的至少一个历史定位数据,若所述至少一个历史定位数据中每个历史定位数据每个历史定位数据中所包含的网络连接指示均指示终端上网连接为Wi-Fi网络连接,则可以将所述至少一个历史定位数据,作为所述IP地址的采集点的采集点数据,进而再通过根据所述IP地址的采集点的采集点数据,对所述IP地址的采集点,进行基于距离的密度聚类处理,以获得至少一个距离簇,使得能够根据所述至少一个距离簇的分布数据,获得所述IP地址的IP地址类型,由于采用了海量的历史定位数据这一定位大数据,使得IP地址的识别更加精准,从而提高了IP地址分类的可靠性。
在分析出每个IP地址所对应的IP地址类型之后,可以将每个IP地址与其所对应的IP地址类型,在终端的存储设备中进行存储处理。
在一个具体的实现过程中,所述终端的存储设备可以为慢速存储设备,具体可以为计算机系统的硬盘,或者还可以为手机的非运行内存即物理内存,例如,只读存储器(Read-Only Memory,ROM)和内存卡等,本实施例对此不进行特别限定。
在另一个具体的实现过程中,所述终端的存储设备还可以为快速存储设备,具体可以为计算机系统的内存,或者还可以为手机的运行内存即系统内存,例如,随机存储器(Random Access Memory,RAM)等,本实施例对此不进行特别限定。
在本发明所进行的基于所述IP地址的定位处理过程中,还可以进一步预先根据终端的大量历史定位数据,挖掘出每个IP地址所对应的位置数据,以供进行基于所述IP地址的定位处理,即根据待定位的IP地址,以及该IP地址的IP地址类型,获得该IP地址所对应的位置数据,即所述终端的位置数据。
具体来说,针对该IP地址,可以根据所述IP地址的IP地址类型,获得所述IP地址的采集点存活时间。进而,则可以获取所述IP地址的采集点存活时间之内的采集点的采集点数据。然后,可以根据所述IP地址的IP地址类型和所获取的所述IP地址的采集点存活时间之内的采集点的采集点数据,获得所述IP地址所对应的位置数据。
若所述IP地址的IP地址类型为第一类型或第三类型,所述IP地址的采集点存活时间可以为无限长时间;若所述IP地址的IP地址类型为第二类型或第四类型,所述IP地址的采集点存活时间可以为通过如下方法获得:可以获取所述IP地址的每个采集点的定位时间,进而,则可以根据所述IP地址的每个采集点的定位时间,获得所述IP地址的采集点转移时间如平均值,将所述采集点转移时间,所述IP地址的采集点存活时间。
例如,若所述IP地址的IP地址类型为第一类型,则所获取的所述IP地址的采集点存活时间之内的采集点的采集点数据,计算一个中心位置的位置数据,以作为所述IP地址所对应的位置数据。
或者,再例如,若所述IP地址的IP地址类型为第二类型或第三类型或第四类型,则根据所获取的所述IP地址的采集点存活时间之内的采集点的采集点数据,对所述采集点,进行基于距离的密度聚类处理,以获得至少两个距离簇;若所述至少两个所述距离簇中每个距离簇在时间上为有序排列,计算定位时间距离当前时间最近的距离簇的中心位置的位置数据,以作为所述IP地址所对应的位置数据;若所述至少两个所述距离簇中每个距离簇在时间上为无序排列,计算所述至少两个所述距离簇中每个距离簇的中心位置的位置数据,以作为所述IP地址所对应的位置数据。
在挖掘出每个IP地址所对应的位置数据之后,可以将每个IP地址与其所对应的位置数据,在终端的存储设备中进行存储处理。
在一个具体的实现过程中,所述终端的存储设备可以为慢速存储设备,具体可以为计算机系统的硬盘,或者还可以为手机的非运行内存即物理内存,例如,只读存储器(Read-Only Memory,ROM)和内存卡等,本实施例对此不进行特别限定。
在另一个具体的实现过程中,所述终端的存储设备还可以为快速存储设备,具体可以为计算机系统的内存,或者还可以为手机的运行内存即系统内存,例如,随机存储器(Random Access Memory,RAM)等,本实施例对此不进行特别限定。
在本发明所进行的基于所述IP地址的定位处理过程中,具体可以根据所述IP地址的IP地址类型,直接获得所述IP地址所对应的位置数据;或者获取所述终端的停留位置,在所述终端的停留位置附近,获得所述IP地址所对应的位置数据。
可以理解的是,如果当前时刻不在所述IP地址的采集点存活时间之内,则直接结束流程,定位失败。只有当前时刻在所述IP地址的采集点存活时间之内,才可以正常进行后续的定位操作。
在一个具体的实现过程中,若所述IP地址的IP地址类型为第一类型,则直接获得所述IP地址所对应的位置数据,作为终端的定位结果。
在另一个具体的实现过程中,若所述IP地址的IP地址类型为第二类型,则直接获得所述IP地址所对应的位置数据,作为终端的定位结果。
在另一个具体的实现过程中,若所述IP地址的IP地址类型为第三类型或第四类型,则可以进一步获取所述终端的停留位置,在所述终端的停留位置附近,获得所述IP地址所对应的位置数据。
可以理解的是,获取终端的停留位置,可以采用现有技术中的任何方法,例如,可以根据用户在指定应用中所提供的注册信息中的联系地址或者工作单位等信息获得,或者还可以根据用户的历史定位数据获得,等等,本实施例对此不进行特别限定。
本实施例中,通过获取终端的定位请求消息,所述定位请求消息中包含所述终端的IP地址,进而利用所述终端的至少一个缓存IP地址数据库,获得本次定位结果,使得能够输出所述本次定位结果,由于采用缓存IP地址数据库,提供终端的本次定位结果,从而提高了定位效率。
另外,采用本发明所提供的技术方案,在所述终端的至少一个缓存IP地址数据库无法提供终端的本次定位结果时,通过获得待定位的IP地址的IP地址类型,进而根据所述IP地址的IP地址类型,获得所述IP地址所对应的位置数据,以作为终端的本次定位结果,由于不同类型的IP地址,具有不同的分布特点,因此,根据所识别出的IP地址的地址类型,执行基于IP地址的定位操作,能够获得精确的位置数据,从而提高了基于IP地址定位的定位精度。
另外,采用本发明所提供的技术方案,能够有效地提高用户的体验。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图2为本发明另一实施例提供的基于IP地址的定位装置的结构示意图,如图2所示。本实施例的基于IP地址的定位装置可以包括获取单元21、定位单元22和输出单元23。其中,获取单元21,用于获取终端的定位请求消息,所述定位请求消息中包含所述终端的IP地址;定位单元22,用于利用所述终端的至少一个缓存IP地址数据库,获得本次定位结果;输出单元23,用于输出所述本次定位结果。
需要说明的是,本实施例所提供的基于IP地址的定位装置的部分或全部可以为位于本地终端的应用,或者还可以为设置在位于本地终端的应用中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元,或者还可以为位于网络侧服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,本实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在终端上的本地程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本实施例对此不进行特别限定。
可选地,在本实施例的一个可能的实现方式中,所述定位单元22,具体可以用于
若所述终端的至少一个缓存IP地址数据库中每个缓存IP地址数据库均为空,进行基于所述IP地址的定位处理,以获得本次定位结果;将所述IP地址、所述本次定位结果和定位时间,存储到所述至少一个缓存IP地址数据库中任一缓存IP地址数据库;
若所述终端的至少一个缓存IP地址数据库中任一缓存IP地址数据库不为空,且所述IP地址在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,且所述IP地址所对应的定位时间距离当前时间的时间差值小于或等于预先设置的时间阈值,将所述一个缓存IP地址数据库中的所述IP地址所对应的平均定位结果,作为本次定位结果;
若所述终端的至少一个缓存IP地址数据库中任一缓存IP地址数据库不为空,且所述IP地址不在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,或者且所述IP地址在所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库中,且所述IP地址所对应的定位时间距离当前时间的时间差值大于所述时间阈值,进行基于所述IP地址的定位处理,以获得本次定位结果;将所述IP地址、所述本次定位结果和所述定位时间,存储到所述至少一个缓存IP地址数据库中的一个缓存IP地址数据库。
可选地,在本实施例的一个可能的实现方式中,所述定位单元22,具体可以用于
根据所述本次定位结果和所述每个缓存IP地址数据库中所述IP地址所对应的平均定位结果,获得与所述本次定位结果之间的间隔距离最小的平均定位结果所属的缓存IP地址数据库;
若所述IP地址在所述间隔距离最小的平均定位结果所属的缓存IP地址数据库中,或者所述间隔距离小于或等于预先设置的距离阈值,利用所述IP地址、所述本次定位结果和所述定位时间,更新所述间隔距离最小的平均定位结果所属的缓存IP地址数据库;
若所述IP地址不在所述间隔距离最小的平均定位结果所属的缓存IP地址数据库中,且所述间隔距离大于所述距离阈值,
若所述至少一个缓存IP地址数据库中任一缓存IP地址数据库为空,将所述IP地址、所述本次定位结果和定位时间,存储到所述任一缓存IP地址数据库;
若所述至少一个缓存IP地址数据库中所述每个缓存IP地址数据库均不为空,清空更新时间最早的一个缓存IP地址数据库,将所述IP地址、所述本次定位结果和定位时间,存储到清空之后的缓存IP地址数据库。
可选地,在本实施例的一个可能的实现方式中,所述至少一个缓存IP地址数据库的数量可以为2。
可选地,在本实施例的一个可能的实现方式中,所述定位单元22,具体可以用于
获得所述IP地址的IP地址类型;以及
根据所述IP地址的IP地址类型,获得所述IP地址所对应的位置数据,以作为所述本次定位结果。
具体来说,所述IP地址的IP地址类型,可以包括但不限于第一类型、第二类型、第三类型或第四类型,本实施例对此不进行特别限定。
举例来说,所述第一类型为固定分配单中心点类型;所述第二类型为动态分配单中心点类型;所述第三类型为固定分配多中心点类型;所述第四类型为动态分配多中心点类型。
需要说明的是,图1对应的实施例中方法,可以由本实施例提供的基于IP地址的定位装置实现。详细描述可以参见图1对应的实施例中的相关内容,此处不再赘述。
本实施例中,通过获取单元获取终端的定位请求消息,所述定位请求消息中包含所述终端的IP地址,进而由定位单元利用所述终端的至少一个缓存IP地址数据库,获得本次定位结果,使得输出单元能够输出所述本次定位结果,由于采用缓存IP地址数据库,提供终端的本次定位结果,从而提高了定位效率。
另外,采用本发明所提供的技术方案,在所述终端的至少一个缓存IP地址数据库无法提供终端的本次定位结果时,通过获得待定位的IP地址的IP地址类型,进而根据所述IP地址的IP地址类型,获得所述IP地址所对应的位置数据,以作为终端的本次定位结果,由于不同类型的IP地址,具有不同的分布特点,因此,根据所识别出的IP地址的地址类型,执行基于IP地址的定位操作,能够获得精确的位置数据,从而提高了基于IP地址定位的定位精度。
另外,采用本发明所提供的技术方案,能够有效地提高用户的体验。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。