发明内容
本公开实施例至少提供一种定位方案,以提高在基于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数据库中,所述有效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地址进行定位时的准确度。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种定位方法进行详细介绍,本公开实施例所提供的定位方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备可以服务器或其它处理设备,在一些可能的实现方式中,该定位方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
以本公开实施例的执行主体为服务器为例,在本公开以下实施例中,涉及到的用户信息、客户端数据、以及在进行大数据统计时获取的大量数据均为用户授权的数据,另外,本公开涉及到的客户端发送的信息,均为用户授权的服务器可以读取的信息,详细内容详见以下具体实施例。
参见图1所示,为本公开实施例提供的定位方法的流程图,该定位方法包括步骤S101~S103,如下:
S101,获取客户端的互联网协议IP地址。
这里的客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序,一般安装在普通的客户机上,需要与服务端互相配合运行,比如某些应用程序App。
这里获取客户端的互联网协议IP地址为用户授权的IP地址。
具体地,这里可以是在接收到客户端发送的连接请求时,获取连接请求中包含的IP地址,该连接请求可以是客户端请求登录服务器的连接请求,或者是客户端向服务器请求目标服务请求时向服务器发送的连接请求,比如针对视频类客户端,这里可以为客户端向服务器发送请求获取目标视频时发送的连接请求,该连接请求中可以包含客户端联网时使用的IP地址,这样服务器在接收到客户端发送的连接请求时,即可以提取到该IP地址,这里连接请求中包含的信息,比如包含的IP地址,为用户授权的可以查看的信息。
S102,当IP地址为能够用于定位的有效IP地址时,根据IP数据库中各IP地址与位置信息之间的映射关系,确定与有效IP地址对应的候选位置信息。
这里的有效IP地址即可以用于对客户端进行定位的IP地址,比如网络运营商单独给该客户端在联网时分配的IP地址即可以用于对客户端进行定位,而一些IP地址不是能够用于定位的有效IP地址,比如代理IP地址或者公共IP地址,具体将在后文进行介绍。
这里IP数据库可以包含IP置信度数据库,还可以包含IP范围数据库,其中,IP置信度数据库可以是预先通过大数据统计(这里在进行大数据统计时,获取到的大数据信息均为用户授权的数据信息),得到一些IP地址段出现在各个行政级别不同地区的频率,然后将该频率定义为置信度,从而形成IP置信度数据库,比如,某IP地址在一定时长内出现在位置A的频率较高,则该IP地址对应为位置信息为位置A的置信度就较高;其中,IP范围库同样也可以通过大数据分析,得到一些IP地址段覆盖的范围,即可以形成IP范围数据库,IP置信度数据库和IP范围数据库将在后文进行详细阐述。
这里在确定IP地址为能够用于定位的有效IP地址后,即可以基于预先建立的IP数据库中各IP地址与位置信息之间的映射关系,确定有效IP地址对应的候选位置信息,这里的候选位置信息包含不同精度的位置信息,比如可以包含“中国”、“北京市”以及“海淀区”,可以看到“海淀区”是中国北京市的一个地区,相对于北京市来说,其定位范围更加精准,这里的“中国”、“北京市”以及“海淀区”可以作为IP数据库中某个IP地址关联的位置信息。
S103,从候选位置信息中,选择与有效IP地址的属性信息匹配的目标候选位置信息,作为客户端的当前位置信息。
这里IP地址的属性信息为用户授权可以查看到的属性信息,具体可以包括该IP地址的网络类型,网络类型包括有线固网类型、WLAN热点类型、移动网络类型和卫星通讯类型等;其中,有线固网类型的IP地址的定位精度能够定位到街道级别或者区县级别;WLAN热点类型的IP地址的定位精度可定位到区县级别或者城市级别;移动网络(3G/4G)类型的IP地址的定位精度可定位到省级别;卫星通讯类型的IP地址的定位精度可定位到国家级别。
IP地址的属性信息还可以包括IP地址属于的运营商,通过预先确定运营商对IP地址的分配策略,确定该IP地址属于的精度,比如若运营商给该IP地址分配的定位精度为国家,则该IP地址对应的目标候选位置信息即从定位为国家的候选位置信息中选择。
IP地址的属性信息还可以包含IP地址覆盖的范围,通过该有效IP地址对应的覆盖的范围来确定该有效IP地址的定位精度,比如,预先通过地理统计局给出的不同地区的面积,然后基于该有效IP地址覆盖的范围,来确定该有效IP地址可以定位到县级地区、省级区域还是国家区域。
以上步骤S101~S103提出的定位方法,在获取到IP地址后,首选先确定该IP地址是否为能够用于定位的有效IP地址,在确定该IP地址为能够用于进行定位的有效IP地址后,再根据IP数据库中各IP地址与位置信息之间的映射关系,确定与该有效IP地址对应的候选位置信息,这样可以避免当IP地址不是有效IP地址的情况下,继续用该IP地址对客户端进行定位造成的定位不准确的问题,另外在得到该有效IP地址对应的候选位置信息后,进一步在候选位置信息中,选择与有效IP地址的属性信息匹配的目标候选位置信息,即进一步选择准确度更高的位置信息,故本公开实施例能够提高在基于IP地址进行定位时的准确度。
下面将结合具体实施例对上述S101~S103进行具体阐述。
针对上述S102,具体可以按照以下方式确定IP地址是否为能够用于定位的有效IP地址:
(1)判断IP地址的类型是否为预设类型,预设类型包括代理IP地址类型和公共IP地址类型。
这里代理IP地址类型是指属于代理服务器分配的IP地址类型,这类IP地址类型对应的位置信息表示的是代理服务器的位置信息,不能用于对客户端进行定位,常见的代理IP地址类别包括洋葱路由器Tor(洋葱路由器是一个类似于P2P原理的代理服务器)、机房、虚拟私人网络(Virtual Private Network,VPN)、域名系统协议(Domain Name System,DNS)等分配的IP地址类型。
这里的公共IP地址类型是指运营商级共享地址类型,该类型的IP地址属于公用IP地址,同样无法对客户端进行定位。
(2)在确定IP地址的类型不是代理IP地址类型,并且不是公共IP地址类型时,确定IP地址为能够用于定位的有效IP地址。
通过以上方式确定IP地址的类别不属于以上两种时,则可以确定该IP地址为能够用于定位的有效IP地址。
反之,若IP地址属于以上情况,即当IP地址不是能够用于定位的有效IP地址时,本公开实施例提供的定位方法还包括:
(1)提取最近设定时长内客户端发送的有效IP地址;
(2)将最近设定时长内客户端发送的有效IP地址作为能够用于定位的有效IP地址。
具体地,在根据客户端发送的连接请求,获取连接请求中包含的IP地址的情况下,这里最近设定时长内客户端发送的有效IP地址,可以为客户端上一次向服务器发送的连接请求中包含的IP地址。
这里即考虑到客户端相邻两次向服务器发送连接请求的距离间隔大概率间隔较近,则若此时客户端发送的连接请求中包含的IP地址不是能够用于定位的有效IP地址,则可以查看该客户端发送的历史连接请求中是否包含有效IP地址,若包含的话,则可以将客户端上一次发送的有效IP地址作为当前能够用于定位的有效IP地址,继续进行后续的定位工作。
在确定该IP地址为能够用于定位的有效IP地址后,则可以根据IP数据库中各IP地址与位置信息之间的映射关系,确定与有效IP地址对应的候选位置信息,在一种实施方式中,具体可以包括:
(1)在服务器预先建立的IP数据库中查找是否存在有效IP地址;
(2)在确定服务器预先建立的IP数据库中存在有效IP地址时,获取IP数据库中有效IP地址匹配的各个位置信息的置信度;
(3)将对应的置信度高于设定阈值的位置信息作为有效IP地址对应的候选位置信息。
这里在服务器预先建立的IP数据库查找是否存在该有效IP地址,比如可以在预先建立的IP置信度数据库中首先查找是否存在该有效IP地址,若在该IP置信度数据库中查找到该有效IP地址,则继续在该IP置信度数据库中查找与该有效IP地址匹配的各个位置信息的置信度,比如该有效IP地址在IP置信度数据库中匹配了三个位置信息,分别记为位置A、位置B、位置C和位置D,若位置A、位置B、位置C和位置D分别对应的置信度为45%、45%、5%以及5%,且这里的设定阈值为35%时,则将位置A和位置B作为该有效IP地址对应的候选位置信息。
当然,这里还可以结合IP范围数据库来确定该有效IP地址覆盖的范围,从而结合IP置信度数据库一同确认这里有效IP地址对应的候选位置信息,比如在IP范围数据库中查找到该有效IP地址覆盖的范围大于位置A,且小于位置B,则可以进一步确定位置A可以作为该有效IP地址对应的候选位置信息。
针对以上预先建立的IP数据库,可以按照以下方式预先构建IP数据库:
(1)提取最近设定时长内接收到的各个客户端发送的位置信息和IP地址;
(2)在接收到的IP地址为能够用于定位的有效IP地址时,将接收到的IP地址和位置信息进行关联,得到IP地址和位置信息的映射关系对,并基于最近设定时长内得到的各个IP地址和位置信息的映射关系对,确定每个IP地址属于不同位置信息的置信度。
这里客户端发送的位置信息和IP地址均为用户授权的信息。
这里是基于在最近设定时长内,比如最近一个月或者最近一年内,接收到的各个客户端发送的包含位置信息和IP地址的连接请求时,基于位置信息和IP地址构建的,比如每接收到一个连接请求中包含的位置信息和IP地址时,则将该IP地址和位置信息进行关联,这些就形成多个IP地址和位置信息的映射关系对。
在基于各个IP地址和位置信息的映射关系对,确定每个IP地址属于不同位置信息的置信度时,同样可以先提取有效IP地址和位置信息的映射关系对,然后再通过这些映射关系对,确定每个有效IP地址属于不同位置信息的置信度,比如在最近一年内,接收到100次某个有效IP地址以及其关联的位置信息,若这100次中有53次指示该有效IP地址的位置信息为位置A,有30次指示该有效IP地址的位置信息为位置B,有17次指示该有效IP地址的位置信息为位置C,则该有效IP地址属于位置A的置信度可以记为53%,属于位置B的置信度可以记为30%,属于位置C的置信度可以记为17%。
按照这样的方式,即可以对设定时长内接收到的IP地址构建IP数据库,具体是指建立IP置信度数据库;针对构建IP范围数据库,同样也可以是通过数据挖掘,得到每个有效IP地址覆盖不同范围的次数,然后构建IP范围数据库,比如,针对某个有效IP地址,发现在最近一年内,其主要覆盖的范围为10000平方千米,则该有效IP地址覆盖的范围为10000平方千米,按照这样的方式,即可以构建IP范围数据库。
另外,在基于IP数据库,确定有效IP地址对应的候选位置信息时,还包括:
(1)在确定服务器预先建立的IP数据库中不存在有效IP地址时,获取在多个第三方IP数据库中,有效IP地址对应的位置信息;
(2)基于在第三方IP数据库中,有效IP地址对应的位置信息,确定有效IP地址对应的候选位置信息。
若在预先建立的IP数据库中没有找到该有效IP地址,说明在最近设定时长内可能并没有接收到该有效IP地址以及其对应的位置信息,此时可以借助第三方IP数据库来确定该有效IP地址对应的候选位置信息。
具体地,该有效IP地址对应的候选位置信息,可以通过多个第三方IP数据库中确定的该有效IP地址的位置信息来确定,即通过多个第三方IP数据库来对该有效IP地址的候选位置信息进行投票决定,比如共获取到100个第三方IP数据库,其中,在45个第三方IP数据库中显示该有效IP地址对应的位置信息为位置A,在35个第三方IP数据库中显示该有效IP地址对应的位置信息为位置B,在20个第三方IP数据库中显示该有效IP地址对应的位置信息为位置C,则这里可以选择投票次数最高的位置信息作为该有效IP地址对应的候选位置信息,则该情况下,这里有效IP地址对应的候选位置信息为位置A;也可以选择投票次数超过设定次数的位置信息作为该有效IP地址对应的候选位置信息,则该情况下,若设定次数为30次,这里有效IP地址对应的候选位置信息为位置A和位置B。
特别地,还可以根据大数据统计结果,对每个第三方IP数据库分配权重,这样在通过多个第三方IP数据库中确定的该有效IP地址的位置信息时,则可以根据每个第三方IP地址数据库确定的该有效IP地址的位置信息,以及该第三方IP地址数据库对应的权重,来共同确定该有效IP地址的位置信息。
根据以上方式得到有效IP地址的候选位置信息后,进一步地,针对上述步骤S103,即从这些候选位置信息中进一步选择可以作为客户端的当前位置信息的目标候选位置信息。
具体地,以上得到的有效IP地址的候选位置信息包含不同范围精度的位置信息,则在从候选位置信息中,选择与有效IP地址的属性信息匹配的目标候选位置信息,作为客户端的当前位置信息时,可以包括:
(1)基于有效IP地址的属性信息,确定该有效IP地址对应的范围精度;
(2)基于有效IP地址对应的范围精度,在候选位置信息中选择与范围精度匹配的目标候选位置信息,作为客户端的当前位置信息。
针对上文提到的属性信息的定义,这里可以基于有效IP地址的属性信息,来确定该有效IP地址对应的范围精度,比如若该有效IP地址的属性信息指示该有效IP地址的网络类型为有线固网类型,则说明该有效IP地址对应的目标候选位置信息可以为街道级别或者区县级别的位置,则可以在该有效IP地址对应的候选位置信息中选择街道级别或者区县级别的候选位置信息作为这里的目标候选位置信息。
或者,若该有效IP地址的属性信息指示该有效IP地址的网络类型为卫星通讯类型,则可以保留该有效IP地址对应的候选位置信息中属于国家级别的候选位置信息作为这里的目标候选位置信息。
另外,还可以根据上述提到的IP范围数据库确定该有效IP地址覆盖的范围后,即若该有效IP地址的属性信息包含该有效IP地址覆盖的范围为县级地区的范围,则在该有效IP地址对应的候选位置信息中,保留属于县级地区的候选位置信息作为这里的目标候选位置信息。
即这里是通过有效IP地址的属性信息,来进一步从该有效IP地址对应的候选位置信息中,选择精度更加准确的目标候选位置信息,并以该目标候选位置信息作为客户端的当前位置信息。
下面针对上文介绍的详细定位过程,以图2给出示意图,进行整体概况,如下:
如图2所示,本公开对客户端进行定位的系统可以包括采集系统,即前期采集IP数据库的系统,比如可以包括多个客户端来统计最近设定时长内,比如最近一年内接收到的连接请求中包含的IP地址和对应的位置信息,然后将这些IP地址和对应的位置信息发送至离线系统,这里采集系统采集的位置信息可以是客户端每次发送IP地址时携带的经纬度信息。
离线系统可以基于该IP地址和对应的位置信息(经纬度信息)来构建IP数据库,通过大数据统计,可以构建IP置信度数据库(包含每个IP地址对应各个位置信息的置信度)以及IP范围数据库(包含每个IP地址覆盖的范围大小),此外,离线系统还可以通过第三方定位库中统计的各个IP地址对应的位置信息,具体构建时,可以通过统计第三方定位库中,每个IP地址属于各个位置信息的置信度来构建第三方IP数据库,比如某个IP地址属于位置A的置信度最高,则在该第三方定位库中该IP地址对应的位置信息即为位置A。
在线系统即在接收到客户端发送的未包含位置信息的连接请求时,可以提取该连接请求中包含的IP地址,在对不能用于定位的IP地址进行过滤后,基于离线系统预先构建的IP数据库或者第三方IP数据库来确定有效IP地址对应的候选位置信息,然后基于有效IP地址的属性信息对候选位置信息进行精度调整,确定目标候选位置信息,比如有效IP地址的属性信息包括该有效IP地址的网络类型,以及该有效IP地址覆盖的范围,则具体在基于有效IP地址的属性信息确定目标候选位置信息时,可以用该有效IP地址的网络类型、该有效IP地址覆盖的范围、连接类型库中记录的每种网络类型对应的精度范围,以及行政区域库中可以记录有每种行政区域的面积来公共同确定目标候选位置信息。
在一种实施方式中,在确定客户端的当前位置信息后,本公开实施例提供的定位方法还包括:
基于客户端的当前位置信息,为客户端进行资源配置。
当接收到客户端的连接请求,并确定了该客户端的当前位置信息后,则可以基于该客户端的当前位置信息,为客户端进行资源配置,比如向客户端推送与当前位置信息相关的风景介绍、或者与当前位置信息相关的商家店铺等。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一技术构思,本公开实施例中还提供了与定位方法对应的定位装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述定位方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图3所示,为本公开实施例提供的一种定位装置300的示意图,装置包括:获取模块301、第一确定模块302和第二确定模块303。
其中,获取模块301,用于获取客户端的互联网协议IP地址;
第一确定模块302,用于当IP地址为能够用于定位的有效IP地址时,根据IP数据库中各IP地址与位置信息之间的映射关系,确定与有效IP地址对应的候选位置信息;
第二确定模块303,用于从候选位置信息中,选择与有效IP地址的属性信息匹配的目标候选位置信息,作为客户端的当前位置信息。
在一种可能的实施方式中,第一确定模块302按照以下方式确定IP地址是否为能够用于定位的有效IP地址:
判断IP地址的类型是否为预设类型,预设类型包括代理IP地址类型和公共IP地址类型;
在确定IP地址的类型不是代理IP地址类型,并且不是公共IP地址类型时,确定IP地址为能够用于定位的有效IP地址。
在一种可能的实施方式中,第一确定模块302在用于根据IP数据库中各IP地址与位置信息之间的映射关系,确定与有效IP地址对应的候选位置信息时,包括:
在服务器预先建立的IP数据库中查找是否存在有效IP地址;
在确定服务器预先建立的IP数据库中存在有效IP地址时,获取IP数据库中有效IP地址匹配的各个位置信息的置信度;
将对应的置信度高于设定阈值的位置信息作为有效IP地址对应的候选位置信息。
在一种可能的实施方式中,第一确定模块302在用于基于IP数据库,确定有效IP地址对应的候选位置信息时,还包括:
在确定服务器预先建立的IP数据库中不存在有效IP地址时,获取在多个第三方IP数据库中,有效IP地址对应的位置信息;
基于在第三方IP数据库中,有效IP地址对应的位置信息,确定有效IP地址对应的候选位置信息。
在一种可能的实施方式中,候选位置信息包含不同范围精度的位置信息,第二确定模块303在用于从候选位置信息中,选择与有效IP地址的属性信息匹配的目标候选位置信息,作为客户端的当前位置信息时,包括:
基于有效IP地址的属性信息,确定该有效IP地址对应的范围精度;
基于有效IP地址对应的范围精度,在候选位置信息中选择与范围精度匹配的目标候选位置信息,作为客户端的当前位置信息。
在一种可能的实施方式中,获取模块301获取客户端的互联网协议IP地址之后,第一确定模块302还用于:
当IP地址不是能够用于定位的有效IP地址时,提取最近设定时长内客户端发送的有效IP地址;
将最近设定时长内客户端发送的有效IP地址作为能够用于定位的有效IP地址。
在一种可能的实施方式中,定位装置300还包括构建模块304,构建模块304按照以下方式预先构建IP数据库:
提取最近设定时长内接收到的各个客户端发送的位置信息和IP地址;
在接收到的IP地址为能够用于定位的有效IP地址时,将接收到的IP地址和位置信息进行关联,得到IP地址和位置信息的映射关系对,并基于最近设定时长内得到的各个IP地址和位置信息的映射关系对,确定每个IP地址属于不同位置信息的置信度。
在一种可能的实施方式中,定位装置300还包括配置模块305,在确定客户端的当前位置信息后,配置模块305用于:
基于客户端的当前位置信息,为客户端进行资源配置。
对应于图1中的定位方法,本公开实施例还提供了一种电子设备400,如图4所示,为本公开实施例提供的电子设备400结构示意图,包括:
处理器41、存储器42、和总线43;存储器42用于存储执行指令,包括内存421和外部存储器422;这里的内存421也称内存储器,用于暂时存放处理器41中的运算数据,以及与硬盘等外部存储器422交换的数据,处理器41通过内存421与外部存储器422进行数据交换,当电子设备400运行时,处理器41与存储器42之间通过总线43通信,使得处理器41执行以下指令:获取客户端的互联网协议IP地址;当IP地址为能够用于定位的有效IP地址时,根据IP数据库中各IP地址与位置信息之间的映射关系,确定与有效IP地址对应的候选位置信息;从候选位置信息中,选择与有效IP地址的属性信息匹配的目标候选位置信息,作为客户端的当前位置信息。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的定位方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的定位方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的定位方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。