一种IP地址库创建方法及装置与流程

文档序号:11623936阅读:311来源:国知局
一种IP地址库创建方法及装置与流程

本发明属于计算机网络技术领域,尤其涉及一种ip地址库创建方法及装置。



背景技术:

随着智能终端技术飞速发展,各种基于智能终端开发的应用程序(application,app)应运而生,很多app需要定位智能终端的地理位置,例如,需要根据智能终端所在城市提供商品或服务的app。

很多app的定位功能依赖于智能终端的全球定位系统(globalpositioningsystem,gps),即智能终端开启gps后,后台程序获取智能终端的经纬度,从而获得该app用户所在的城市信息;如果当前用户没有开启gps定位功能,app可以根据当前用户的ip地址获取与该ip地址匹配的城市信息,如何快速又准确地根据用户的ip地址确定用户的地理位置,成为亟需解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种ip地址库创建方法及装置,在服务端创建ip地址库,以实现根据访问app的用户的ip地址快速、准确地对用户定位,其技术方案如下:

第一方面,本申请一种ip地址库创建方法,应用于服务端,包括:

获取应用程序对应日志数据中的ip地址;

判断ip地址库中是否包含所述ip地址;

当所述ip地址库中不包含所述ip地址时,从ip信息查询网络中,查询得到所述ip地址对应的地理位置信息;

将所述ip地址和所述地理位置信息对应存储到所述ip地址库中。

可选地,所述当所述ip地址库中不包含所述ip地址时,从ip信息查询网络中,查询得到所述ip地址对应的地理位置信息,包括:

当所述ip地址库中不包含所述ip地址时,从所述ip地址中提取三段式ip数据;

向所述ip信息查询网络发送ip查询请求,所述ip查询请求携带所述三段式ip数据;

接收所述ip信息查询网络返回的所述三段式ip数据对应的地理位置信息。

可选地,所述地理位置信息包括:国家id、省份id、省份名称、城市id、城市名称、区县id、区县名称,网络运营商信息;所述ip地址库中还包括国家标识信息;所述方法还包括:

当根据所述国家id确定所述ip地址所属国家为中国之外的其它国家时,将所述国家标识信息置为第一预设标识;

当根据所述国家id确定所述ip地址所属国家为中国时,将所述国家标识信息置为第二预设标识。

可选地,所述将所述ip地址和所述地理位置信息对应存储到所述ip地址库中,包括:

判断从所述ip信息查询网中获得的地理位置信息的编码格式与所述服务端的编码格式是否相同;

若编码格式相同,则直接将所述地理位置信息与所述ip地址对应存储到所述ip地址库中;

若编码格式不同,则将从所述ip信息查询网中获得的地理位置信息的编码转换为所述服务端所使用的编码格式,并将所述地理位置信息对应的转换后编码与所述ip地址对应存储到所述ip地址库中。

可选地,所述将所述ip地址和所述地理位置信息对应存储到所述ip地址库中,包括:

将所述ip地址和所述地理位置信息对应存入redis数据库中的ip地址库中,以及,将所述ip地址和所述地理位置信息对应存入mysql数据库中的ip地址库中。

可选地,所述方法还包括:

按照指定周期更新所述ip地址库中的ip地址对应的地理位置信息。

第二方面,本申请提供一种ip地址库创建装置,应用于服务端,包括:

第一获取单元,用于获取应用程序对应日志数据中的ip地址;

判断单元,用于判断ip地址库中是否包含所述ip地址;

查询单元,用于当所述ip地址库中不包含所述ip地址时,从ip信息查询网络中,查询得到所述ip地址对应的地理位置信息;

存储单元,用于将所述ip地址和所述地理位置信息对应存储到所述ip地址库中。

可选地,所述查询单元包括:

提取子单元,用于当所述ip地址库中不包含所述ip地址时,从所述ip地址中提取三段式ip数据;

请求子单元,用于向所述ip信息查询网络发送ip查询请求,所述ip查询请求携带所述三段式ip数据;

接收子单元,用于接收所述ip信息查询网络返回的所述三段式ip数据对应的地理位置信息。

可选地,所述地理位置信息包括:国家id、省份id、省份名称、城市id、城市名称、区县id、区县名称,网络运营商信息;所述ip地址库中还包括国家标识信息;所述装置还包括:

第一标识单元,用于当根据所述国家id确定所述ip地址所属国家为中国之外的其它国家时,将所述国家标识信息置为第一预设标识;

第二标识单元,用于当根据所述国家id确定所述ip地址所属国家为中国时,将所述国家标识信息置为第二预设标识。

可选地,所述装置还包括:

更新单元,用于按照指定周期更新所述ip地址库中的ip地址对应的地理位置信息。

本实施例提供的ip地址库创建方法,获取用户在使用app过程中产生的日志数据,并从日志数据中获取ip地址;当确定ip地址库中不包含该ip地址时,从ip信息查询网络中查询该ip地址对应的地理位置信息;然后,将ip地址和该ip地址对应的地理位置信息对应存储到ip地址库中,从而创建了服务器自有的ip地址库,无需每次都从ip信息查询网络中获取地理位置信息,提高了根据ip地址定位的响应速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请实施例一种ip地址库创建方法的流程图;

图2示出了本申请实施例另一种ip地址库创建方法的流程图;

图3示出了本申请实施例又一种ip地址库创建方法的流程图;

图4示出了本申请实施例再一种ip地址库创建方法的流程图;

图5示出了本申请实施例一种ip地址库创建装置的框图;

图6示出了本申请实施例一种查询单元的框图;

图7示出了本申请实施例另一种ip地址库创建装置的框图;

图8示出了本申请实施例又一种ip地址库创建装置的框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1,示出了本申请实施例一种ip地址库创建方法的流程图,该方法应用于与智能终端上安装的app相对应的服务器上。如图1所示,该方法包括以下步骤:

s110,服务器获取应用程序对应日志数据中的ip地址。

用户只要向app对应的服务器请求数据,就会产生相应的日志数据,而且,日志数据中必然包含用户使用的ip地址。因此,服务器在指定时间(例如,每天零点)拉取用户在指定时间之前访问app时产生的日志数据,并解析该日志数据,得到日志数据所包含的ip地址。

s120,服务器判断ip地址库中是否包含该ip地址;如果是,则结束当前流程,继续获取下一个ip地址;如果否,则执行s130。

服务器将解析得到的ip地址与ip地址库中的ip地址一一对比,如果ip地址库中包含该ip地址,则继续判断下一个ip地址是否包含在ip地址库中;如果ip地址库中不包含该ip地址,则执行s130的步骤。

在本申请的一个实施例中,分别基于redis数据库和mysql数据库各建一个ip地址库,redis数据库具有存储速度快、响应速度快等特点。因此,利用基于redis数据库创建的ip地址库查询ip地址库中是否存在待查询的ip地址。mysql数据库具有清晰的数据展示功能,适用于离线分析数据使用。

s130,从ip信息查询网络中,查询得到所述ip地址对应的地理位置信息。

如果服务器的ip地址库中不包含该ip地址,则获取该ip地址的前三段的ip数据,例如,ip地址是1.1.1.100,则该ip地址对应的三段式ip数据是1.1.1。

通常通过ip地址的前三个字段就能确定该ip地址对应的地理位置信息,即所在城市信息,因此,只需在ip地址库中存储三段式ip数据,这样,能够节省大量的存储空间。

ip信息查询网络能够根据ip地址精确定位出ip地址所在的位置。

在本申请的一个实施例中,获得ip地址对应的三段式ip数据后,向ip信息查询网络发送查询请求,该查询请求携带所述三段式ip数据,ip信息查询网络接收到该查询请求后,查询该ip数据对应的地理位置信息,其中,该地理位置信息可以包括:国家id、省份id、省份名称、城市id、城市名称、区县id、区县名称、运营商id、运营商名称等信息。

s140,服务器将所述ip地址和所述地理位置信息对应存储到所述ip地址库中。

服务器接收到ip信息查询网络返回的ip地址对应的地理位置信息后,将该ip地址和对应的地理位置信息对应存储到服务器的ip地址库中。例如,ip地址库中每一条数据条目以“ip,省份id、省份名称、市id、市名称、区县id、区县名称”的形式存储。

不断增加ip地址库中的ip地址条目,得到ip地址库。这样,当用户访问app时,可以根据用户使用的ip地址定位用户所在城市。

本实施例提供的ip地址库创建方法,获取用户在使用app过程中产生的日志数据,并从日志数据中获取ip地址;当确定ip地址库中不包含该ip地址时,从ip信息查询网络中查询该ip地址对应的地理位置信息;然后,将ip地址和该ip地址对应的地理位置信息对应存储到ip地址库中,从而创建了服务器自有的ip地址库,无需每次都从ip信息查询网络中获取地理位置信息,提高了根据ip地址定位的响应速度。

请参见图2,示出了本申请实施例另一种ip地址库创建方法的流程图,该方法应用于app对应的服务器中,ip信息查询网返回的地理位置信息中包含国家id、省份id、城市id、区县id等信息,本实施例在ip地址库中增加国家标识信息。该方法在图1所示实施例的基础上还包括以下步骤:

s210,当根据国家id确定所述ip地址所属国家为中国之外的其它国家时,将所述国家标识信息置为第一预设标识。

若国家id是cn(中国大陆)、mo(澳门)、hk(香港)、tw(台湾),则确定该ip地址所属国家为中国;若国家id不是上述四种id,则确定该ip地址所属国家是中国之外的其它国家。

第一预设标识可以是二进制数,例如,若国家id不是中国,则可以将国家标识信息置为二进制数“0”。

s220,当根据国家id确定所述ip地址所属国家为中国时,将所述国家标识信息置为第二预设标识。

第二预设标识与第一预设标识相同,可以采用二进制数表示,若国家id是中国,则可以将国家标识信息置为二进制数“1”。

本实施例提供的ip地址库创建方法,在ip地址库中设置国家标识信息,后续使用该ip地址库时,通过国家标识信息就能够准确判断ip所处的国家位置,不需要再对国家id进行匹配,从而提高了查询效率。

请参见图3,示出了本申请实施例又一种ip地址库创建方法的流程图,该方法应用于服务器中,本实施例中,当接收到ip信息查询网返回的地理位置信息后,判断接收到的地理位置信息的编码格式与ip地址库所使用的编码格式是否相同。如图3所示,该方法可以包括以下步骤:

s110,服务器获取应用程序对应日志数据中的ip地址。

s120,服务器判断ip地址库中是否包含该ip地址;如果是,则结束当前流程,继续获取下一个ip地址;如果否,则执行s130。

s130,从ip信息查询网络中,查询得到所述ip地址对应的地理位置信息。

其中,s110~s130的实施过程请参见图1所示的实施例,此处不再赘述。

s141,判断所述ip信息查询网返回的地理位置信息的编码格式与所述ip地址库所使用的编码格式是否相同;如果是,则执行s142;如果否,则执行s143。

编码格式主要是指位置名称对应的id信息,例如,判断ip信息查询网返回的地理位置信息中省份名称对应的省份id与ip地址库中该省份名称所对应的省份id是否相同,如果相同,则表明两者的编码格式相同;如果不相同,则表明两者的编码格式不相同。

s142,直接将地理位置信息与所述ip地址对应存储到所述ip地址库中。

若ip信息查询网返回的地理位置信息的编码格式与ip地址库所使用的编码格式相同,则直接将接收到的地理位置信息与ip地址对应存储到ip地址库中。

s143,将从所述ip信息查询网中获得的地理位置信息的编码转换为所述服务端所使用的编码格式。

若ip信息查询网返回的地理位置信息的编码格式与ip地址库所使用的编码格式不相同,则需要将接收到的地理位置的编码格式进行转换。

在本申请的一个实施例中,根据ip信息查询网返回的地理位置信息中最详细的位置的名称信息查找ip地址库的字典表查找到该名称对应的id;例如,地理位置信息中最详细的位置名称是城市名称,则查询字典表得到该城市名称对应的城市id及该城市所属省份id;如果地理位置信息中最详细的位置名称是省份名称,则查询字典表得到该省份名称对应的省份id;如果地理位置信息中最详细的位置名称是区县名称,则查询字典表得到该区县名称对应的区县id、所属城市id、所属省份id。

s144,将所述地理位置信息对应的转换后编码与所述ip地址对应存储到所述ip地址库中。

将地理位置得到的id信息和ip地址对应存储到ip地址库中。

本实施例提供的ip地址库创建方法,当接收到的地理位置信息的编码格式与ip地址库所使用的编码格式不相同时,将地理位置的编码转换成ip地址库所使用的编码,然后,再将编码格式转换后的地理位置信息和ip地址对应存储到ip地址库中。从而实现ip地址库中的数据与服务器全平台数据的统一。

请参见图4,示出了本申请实施例再一种ip地址库创建方法的流程图,该方法在上述方法实施例的基础上增加更新ip地址库的步骤。如图4所示,本实施例在图1所示实施例的基础上还包括:

s310,按照指定周期更新所述ip地址库中的ip地址对应的地理位置信息。

指定周期可以根据需求设定,例如,一周、一个月等。

在本申请的一个实施例中,读取基于mysql数据库的ip地址库中存储的全部ip地址,请求ip信息查询网,获得ip地址对应的地理位置信息并存储到mysql临时表中,逐个比较同一ip地址在mysql数据库中对应的地理位置信息和mysql临时表中的地理位置信息是否相同,如果相同,则不需要更新;如果不同,则需要更新;对比结束后得到需要更新的ip信息,然后,根据mysql临时表中的地理位置信息更新mysql数据库中的ip地址库数据和redis数据库的ip地址库数据。

本实施例提供的ip地址库创建方法,定期更新ip地址库中的已有ip数据,从而保证ip地址库中的数据的有效性,提高ip地址查询的准确率。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

相应于上述的ip地址库创建方法实施例,本申请还提供了ip地址库创建装置实施例。

请参见图5,示出了本申请实施例一种ip地址库创建装置的框图,该装置应用于服务器中,如图5所示,该装置包括:第一获取单元110、判断单元120、查询单元130和存储单元140。

第一获取单元110,用于获取应用程序对应日志数据中的ip地址。

用户只要向app对应的服务器请求数据,就会产生相应的日志数据,而且,日志数据中必然包含用户使用的ip地址。服务器在指定时间(例如,每天零点)拉取用户在指定时间之前访问app时产生的日志数据,并解析该日志数据,得到日志数据所包含的ip地址。

判断单元120,用于判断ip地址库中是否包含所述ip地址。

服务器将解析得到的ip地址与ip地址库中的ip地址一一对比,如果ip地址库中包含该ip地址,则继续判断下一个ip地址是否包含在ip地址库中;如果ip地址库中不包含该ip地址,则控制查询单元执行相应的步骤。

在本申请的一个实施例中,分别基于redis数据库和mysql数据各建一个ip地址库,redis数据具有存储速度快、响应速度快等特点。因此,利用基于redis数据库创建的ip地址库查询ip地址库中是否存在待查询的ip地址。

查询单元130,用于当所述ip地址库中不包含所述ip地址时,从ip信息查询网络中,查询得到所述ip地址对应的地理位置信息。

在本申请的一个实施例中,如图6所示,查询单元包括提取子单元131、请求子单元132和接收子单元133。

提取子单元131,用于当ip地址库中不包含所述ip地址时,从所述ip地址中提取三段式ip数据。

通常通过ip地址的前三个字段就能确定该ip地址对应的地理位置信息,即所在城市信息,因此,只需在ip地址库中存储三段式ip数据,这样,能够节省大量的存储空间。

请求子单元132,用于向ip信息查询网络发送ip查询请求,所述ip查询请求携带所述三段式ip数据。

接收子单元133,用于接收ip信息查询网络返回的三段式ip数据对应的地理位置信息。

地理位置信息可以包括:国家id、省份id、省份名称、城市id、城市名称、区县id、区县名称、运营商id、运营商名称等信息。

存储单元140,用于将所述ip地址和所述地理位置信息对应存储到所述ip地址库中。

例如,ip地址库中每一条数据条目以“ip,省份id、省份名称、市id、市名称、区县id、区县名称”的形式存储。

在本申请的一个实施例中,接收到ip信息查询网返回的地理位置信息后,首先判断该地理位置信息的编码和ip地址库所使用的编码是否相同(编码格式主要是指位置名称对应的id信息),若编码格式相同,则直接将所述地理位置信息与所述ip地址对应存储到所述ip地址库中;若编码格式不同,则将从所述ip信息查询网中获得的地理位置信息的编码转换为所述服务端所使用的编码格式,并将所述地理位置信息对应的转换后编码与所述ip地址对应存储到所述ip地址库中。

本实施例提供的ip地址库创建装置,获取用户在使用app过程中产生的日志数据,并从日志数据中获取ip地址;当确定ip地址库中不包含该ip地址时,从ip信息查询网络中查询该ip地址对应的地理位置信息;然后,将ip地址和该ip地址对应的地理位置信息对应存储到ip地址库中,从而创建了服务器自有的ip地址库,无需每次都从ip信息查询网络中获取地理位置信息,提高了根据ip地址定位的响应速度。

请参见图7,示出了本申请实施例另一种ip地址库创建装置的框图,ip地址库中还包括国家标识信息。如图7所示,该装置在图5所示实施例的基础上包括:第一标识单元210和第二标识单元220。

第一标识单元210,用于当根据所述国家id确定所述ip地址所属国家为中国之外的其它国家时,将所述国家标识信息置为第一预设标识。

若国家id是cn(中国大陆)、mo(澳门)、hk(香港)、tw(台湾),则确定该ip地址所属国家为中国;若国家id不是上述四种id,则确定该ip地址所属国家是中国之外的其它国家。

第一预设标识可以是二进制数,例如,若国家id不是中国,则可以将国家标识信息置为二进制数“0”。

第二标识单元220,用于当根据所述国家id确定所述ip地址所属国家为中国时,将所述国家标识信息置为第二预设标识。

第二预设标识与第一预设标识相同,可以采用二进制数表示,若国家id是中国,则可以将国家标识信息置为二进制数“1”。

本实施例提供的ip地址库创建装置,在ip地址库中设置国家标识信息,后续使用该ip地址库时,通过国家标识信息就能够准确判断ip所处的国家位置,不需要再对国家id进行匹配,从而提高了查询效率。

请参见图8,示出了本申请实施例又一种ip地址库创建装置的框图,该装置应用于服务器中,如图8所示,该装置在图5所示实施例的基础上还包括更新单元310。

更新单元310,用于按照指定周期更新所述ip地址库中的ip地址对应的地理位置信息。

指定周期可以根据需求设定,例如,一周、一个月等。

在本申请的一个实施例中,读取基于mysql数据库的ip地址库中存储的全部ip地址,请求ip信息查询网,获得ip地址对应的地理位置信息并存储到mysql临时表中,逐个比较同一ip地址在mysql数据库中对应的地理位置信息和mysql临时表中的地理位置信息是否相同,如果相同,则不需要更新;如果不同,则需要更新;对比结束后得到需要更新的ip信息,然后,根据mysql临时表中的地理位置信息更新mysql数据库中的ip地址库数据和redis数据库的ip地址库数据。

本实施例提供的ip地址库创建装置,定期更新ip地址库中的已有ip数据,从而保证ip地址库中的数据的有效性,提高ip地址查询的准确率。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1