发明内容
本发明的主要目的在于提供一种客户端地理位置检测方法和装置,以解决相关技术中检测客户端的地理位置准确性低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种客户端地理位置检测方法。
根据本发明的客户端地理位置检测方法包括:获取待检测客户端的多个客户端网络协议地址,其中,多个客户端网络协议地址为待检测客户端在多个接收服务器上的客户端网络协议地址,多个接收服务器分别位于不同的地理位置;分别确定多个客户端网络协议地址对应的地理位置,得到待检测客户端对应的多个地理位置;以及从多个地理位置中确定待检测客户端的地理位置。
进一步地,获取待检测客户端的多个客户端网络协议地址包括:多个接收服务器接收待检测客户端的访问数据,其中,访问数据中包含待检测客户端的标识符;以及多个接收服务器分别根据待检测客户端的标识符获取待检测客户端的网络协议地址。
进一步地,从多个地理位置中确定待检测客户端的地理位置包括:分别计算多个待检测客户端对应的地理位置中属于同一位置的地理位置的个数;以及将属于同一位置的个数最多的地理位置作为待检测客户端的地理位置。
进一步地,如果属于同一位置的个数最多的地理位置为多个,将属于同一位置的个数最多的地理位置作为待检测客户端的地理位置包括:获取待检测客户端的多个历史地理位置,其中,历史地理位置为待检测客户端历史访问互联网时确定的地理位置;根据多个历史地理位置出现的次数对历史地理位置进行排序;按照历史地理位置的排序依次取排序靠前的历史地理位置与多个属于同一位置的个数最多的地理位置进行匹配;以及取与历史地理位置匹配的地理位置作为待检测客户端的地理位置。
进一步地,如果不存在与历史地理位置匹配的地理位置,将属于同一位置的个数最多的地理位置作为待检测客户端的地理位置包括:从多个属于同一位置的个数最多的地理位置中任意选取一个地理位置;以及将选取的地理位置作为待检测客户端的地理位置。
进一步地,在从所述多个地理位置中确定所述待检测客户端的地理位置之后,方法还包括:建立待检测客户端的标识符和待检测客户端的地理位置的映射关系;以及存储映射关系。
为了实现上述目的,根据本发明的另一方面,提供了一种客户端地理位置检测装置。
根据本发明的客户端地理位置检测装置包括:获取单元,用于获取待检测客户端的多个客户端网络协议地址,其中,多个客户端网络协议地址为待检测客户端在多个接收服务器上的客户端网络协议地址,多个接收服务器分别位于不同的地理位置;第一确定单元,用于分别确定多个客户端网络协议地址对应的地理位置,得到待检测客户端对应的多个地理位置;以及第二确定单元,用于从多个地理位置中确定待检测客户端的地理位置。
进一步地,获取单元包括:接收模块,用于使多个接收服务器接收待检测客户端的访问数据,其中,访问数据中包含待检测客户端的标识符;以及获取模块,用于使多个接收服务器分别根据待检测客户端的标识符获取待检测客户端的网络协议地址。
进一步地,第二确定单元包括:计算模块,用于分别计算多个待检测客户端对应的地理位置中属于同一位置的地理位置的个数;以及确定模块,用于将属于同一位置的个数最多的地理位置作为待检测客户端的地理位置。
进一步地,如果属于同一位置的个数最多的地理位置为多个,确定模块包括:获取子模块,用于获取待检测客户端的多个历史地理位置,其中,历史地理位置为待检测客户端历史访问互联网时确定的地理位置;排序子模块,用于根据多个历史地理位置出现的次数对历史地理位置进行排序;匹配子模块,用于按照历史地理位置的排序依次取排序靠前的历史地理位置与多个属于同一位置的个数最多的地理位置进行匹配;以及确定子模块,用于取与历史地理位置匹配的地理位置作为待检测客户端的地理位置。
通过本发明,采用多个接收服务器得到的待检测客户端的IP地址来确定待检测客户端的地理位置,解决了相关技术中检测客户端的地理位置准确性低的问题,进而达到了提高检测客户端的地理位置准确性的效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种客户端地理位置检测方法,图1是根据本发明实施例的客户端地理位置检测方法的流程图。
如图1所示,该客户端地理位置检测方法包括如下的步骤S102至步骤S106:
步骤S102:获取待检测客户端的多个客户端网络协议地址,其中,多个客户端网络协议地址为待检测客户端在多个接收服务器上的客户端网络协议地址,多个接收服务器分别位于不同的地理位置。
待检测客户端可以是任意用户访问网络的终端设备,例如,电脑。待检测客户端可以是一个,也可以是多个。客户端网络协议地址即客户端IP地址,当用户上网时,位于不同地理位置的接收服务器可能会得到该用户的客户端对应于不同的IP地址,也可能得到该用户的客户端对应于相同的IP地址,例如,位于广东的接收服务器和位于北京的接收服务器得到的该用户的客户端的IP地址可能相同,也可能不相同。具体地,获取待检测客户端的多个客户端网络协议地址包括:多个接收服务器接收待检测客户端的访问数据,其中,访问数据中包含待检测客户端的标识符;以及多个接收服务器分别根据待检测客户端的标识符获取待检测客户端的网络协议地址。
待检测客户端的访问数据中包括待检测客户端的标识符,该待检测客户端的标识符能够唯一的表示该待检测客户端。具体地,可以通过在网页上嵌入代码来获取待检测客户端的访问数据,并将该待检测客户端的访问数据发送给位于不同地理位置的多个接收服务器。多个接收服务器在接收待检测客户端的访问数据后,对该访问数据进行解析可以得到该待检测客户端的标识符和待检测客户端的IP地址。由于多个接收服务器对同一个客户端的访问数据进行解析得到的客户端的标识符是唯一的,而得到的客户端的IP地址可能是不相同的,因此,根据客户端的标识符可以获取到属于该客户端的IP地址。
步骤S104:分别确定多个客户端网络协议地址对应的地理位置,得到待检测客户端对应的多个地理位置。
客户端IP地址和客户端的地理位置是一一对应的,在得到待检测客户端的IP地址后,可以通过查询IP地址数据库中预先存储的客户端IP地址和客户端的地理位置的对应关系,得到该待检测客户端的IP地址对应的待检测客户端的地理位置。通过上述方法,可以得到待检测客户端对应的多个地理位置,可选地,可以存储多个接收服务器得到的待检测客户端的标识符、IP地址和地理位置。
步骤S106:从多个地理位置中确定待检测客户端的地理位置。
在通过上述步骤得到待检测客户端对应的多个地理位置后,可以取多个地理位置中属于同一地理位置个数最多的地理位置作为待检测客户端的地理位置,具体地,从多个地理位置中确定待检测客户端的地理位置包括:分别计算多个待检测客户端对应的地理位置中属于同一位置的地理位置的个数;以及将属于同一位置的个数最多的地理位置作为待检测客户端的地理位置。例如,有5个位于不同地理位置的接收服务器,其中,3个接收服务器解析得到的待检测服务器的地理位置相同,都为A位置,另外2个接收服务器解析得到的待检测服务器的地理位置分别为B位置和C位置,此时,可以将A位置作为待检测客户端的地理位置。显而易见,通过上述方式得到的待检测客户端的地理位置准确性较高。但是,如果属于同一位置的个数最多的地理位置为多个则无法按照上述方法确定待检测客户端的地理位置,例如,有9个位于不同地理位置的接收服务器,其中,3个接收服务器解析得到的待检测服务器的地理位置为A位置,3个接收服务器解析得到的待检测服务器的地理位置为B位置,2个接收服务器解析得到的待检测服务器的地理位置为C位置,1个接收服务器解析得到的待检测服务器的地理位置为D位置,属于同一位置的个数最多的地理位置为A位置和B位置,此时,可以随机的选择一个属于同一位置的个数最多的地理位置作为待检测客户端的地理位置,例如,选择A位置或是B位置作为待检测客户端的地理位置。
优选地,如果属于同一位置的个数最多的地理位置为多个,将属于同一位置的个数最多的地理位置作为待检测客户端的地理位置包括:获取待检测客户端的多个历史地理位置,其中,历史地理位置为待检测客户端历史访问互联网时确定的地理位置;根据多个历史地理位置出现的次数对历史地理位置进行排序;按照历史地理位置的排序依次取排序靠前的历史地理位置与多个属于同一位置的个数最多的地理位置进行匹配;以及取与历史地理位置匹配的地理位置作为待检测客户端的地理位置。
待检测客户端的多个历史地理位置为待检测客户端历史访问互联网时确定的地理位置,可以是获取预设时间内待检测客户端的多个历史地理位置,例如,最近1个月时间内检测得到的该待检测客户端的地理位置。多个历史地理位置可能相同,也可能不相同。通过统计该多个历史地理位置相同历史地理位置出现的次数,并根据该多个历史地理位置相同历史地理位置出现的次数对多个历史地理位置进行排序,例如,根据上述出现次数从大到小或是从小到达进行排序,本发明实施例根据上述多个历史地理位置的出现次数从大到小对多个历史地理位置进行排序,依次取排序靠前的历史地理位置与多个属于同一位置的个数最多的地理位置进行匹配,例如,首先将处于排序第一位的历史地理位置分别和多个属于同一位置的个数最多的地理位置进行匹配,如果不存在匹配的地理位置,再将处于排序第二位的历史地理位置分别和多个属于同一位置的个数最多的地理位置进行匹配,依次类推,直至得到与历史地理位置匹配的地理位置。
可选地,如果不存在与历史地理位置匹配的地理位置,将属于同一位置的个数最多的地理位置作为待检测客户端的地理位置包括:从多个属于同一位置的个数最多的地理位置中任意选取一个地理位置;以及将选取的地理位置作为待检测客户端的地理位置。
如果根据待检测客户端的历史地理位置无法从多个属于同一位置的个数最多的地理位置中得到一个可信的客户端的地理位置,此时,可以随机的从多个属于同一位置的个数最多的地理位置取出一个地理位置,相比于现有技术中仅考虑单一机房中的接收服务器获取的待检测客户端的IP地址来确定待检测客户端的地理位置,准确性更高。
优选地,为了便于随时查看待检测客户端的地理位置,在从所述多个地理位置中确定所述待检测客户端的地理位置之后,方法还包括:建立待检测客户端的标识符和待检测客户端的地理位置的映射关系;以及存储映射关系。
在确定了待检测客户端的地理位置后,可以建立待检测客户端的标识符和待检测客户端的地理位置的映射关系,并存储该映射关系,例如,将该映射关系存储在本地数据库中,从而,通过检索待检测客户端的标识符可以快速得到该待检测客户端的地理位置。如果待检测客户端为多个,可以将每次检测得到的多个待检测客户端的用户的标识符和多个待检测客户端的地理位置的映射关系都存储在数据库中,以便于后续对多个待检测客户端的地理位置进行分析。
从以上的描述中,可以看出,本发明实现了如下技术效果:
本发明实施例通过获取待检测客户端的多个客户端网络协议地址,分别确定多个客户端网络协议地址对应的地理位置,得到待检测客户端对应的多个地理位置,以及从多个地理位置中确定待检测客户端的地理位置。通过多个位于不同地理位置的接收服务器得到的多个待检测客户端的IP地址来确定待检测客户端的地理位置,相比于现有技术中仅靠单一的接收服务器得到的待检测客户端的IP地址来确定待检测客户端的地理位置,准确性更高,得到的待检测客户端的地理位置更为准确、可信,解决了现有技术中检测客户端的地理位置准确性低的问题。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例的另一方面,提供了一种客户端地理位置检测装置,该客户端地理位置检测装置可以用于执行本发明实施例的客户端地理位置检测方法,本发明实施例的客户端地理位置检测方法也可以通过本发明实施例的客户端地理位置检测装置来执行。
图2是根据本发明实施例的客户端地理位置检测装置的示意图,如图2所示,该客户端地理位置检测装置包括:获取单元10,第一确定单元20和第二确定单元30。
获取单元10,用于获取待检测客户端的多个客户端网络协议地址,其中,多个客户端网络协议地址为待检测客户端在多个接收服务器上的客户端网络协议地址,多个接收服务器分别位于不同的地理位置。
待检测客户端可以是任意用户访问网络的终端设备,例如,电脑。待检测客户端可以是一个,也可以是多个。客户端网络协议地址即客户端IP地址,当用户上网时,位于不同地理位置的接收服务器可能会得到该用户的客户端对应于不同的IP地址,也可能得到该用户的客户端对应于相同的IP地址。
第一确定单元20,用于分别确定多个客户端网络协议地址对应的地理位置,得到待检测客户端对应的多个地理位置。
客户端IP地址和客户端的地理位置是一一对应的,在得到待检测客户端的IP地址后,可以通过查询IP地址数据库中预先存储的客户端IP地址和客户端的地理位置的对应关系,得到该待检测客户端的IP地址对应的待检测客户端的地理位置。
可选地,获取单元10包括:接收模块,用于使多个接收服务器接收待检测客户端的访问数据,其中,访问数据中包含待检测客户端的标识符;以及获取模块,用于使多个接收服务器分别根据待检测客户端的标识符获取待检测客户端的网络协议地址。
待检测客户端的访问数据中包括待检测客户端的标识符,该待检测客户端的标识符能够唯一的表示该待检测客户端。具体地,可以通过在网页上嵌入代码来获取待检测客户端的访问数据,并将该待检测客户端的访问数据发送给位于不同地理位置的多个接收服务器。
第二确定单元30,用于从多个地理位置中确定待检测客户端的地理位置。
优选地,第二确定单元30包括:计算模块,用于分别计算多个待检测客户端对应的地理位置中属于同一位置的地理位置的个数;以及确定模块,用于将属于同一位置的个数最多的地理位置作为待检测客户端的地理位置。
优选地,如果属于同一位置的个数最多的地理位置为多个,确定模块包括:获取子模块,用于获取待检测客户端的多个历史地理位置,其中,历史地理位置为待检测客户端历史访问互联网时确定的地理位置;排序子模块,用于根据多个历史地理位置出现的次数对历史地理位置进行排序;匹配子模块,用于按照历史地理位置的排序依次取排序靠前的历史地理位置与多个属于同一位置的个数最多的地理位置进行匹配;以及确定子模块,用于取与历史地理位置匹配的地理位置作为待检测客户端的地理位置。
本发明实施例通过获取单元10获取待检测客户端的多个客户端网络协议地址,第一确定单元20分别确定多个客户端网络协议地址对应的地理位置,得到待检测客户端对应的多个地理位置,以及第二确定单元30从多个地理位置中确定待检测客户端的地理位置。通过多个位于不同地理位置的接收服务器得到的多个待检测客户端的IP地址来确定待检测客户端的地理位置,相比于现有技术中仅靠单一的接收服务器得到的待检测客户端的IP地址来确定待检测客户端的地理位置,准确性更高,得到的待检测客户端的地理位置更为准确、可信,解决了现有技术中检测客户端的地理位置准确性低的问题。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。