本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種ip地址庫創(chuàng)建方法及裝置。
背景技術(shù):
隨著智能終端技術(shù)飛速發(fā)展,各種基于智能終端開發(fā)的應(yīng)用程序(application,app)應(yīng)運(yùn)而生,很多app需要定位智能終端的地理位置,例如,需要根據(jù)智能終端所在城市提供商品或服務(wù)的app。
很多app的定位功能依賴于智能終端的全球定位系統(tǒng)(globalpositioningsystem,gps),即智能終端開啟gps后,后臺(tái)程序獲取智能終端的經(jīng)緯度,從而獲得該app用戶所在的城市信息;如果當(dāng)前用戶沒有開啟gps定位功能,app可以根據(jù)當(dāng)前用戶的ip地址獲取與該ip地址匹配的城市信息,如何快速又準(zhǔn)確地根據(jù)用戶的ip地址確定用戶的地理位置,成為亟需解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種ip地址庫創(chuàng)建方法及裝置,在服務(wù)端創(chuàng)建ip地址庫,以實(shí)現(xiàn)根據(jù)訪問app的用戶的ip地址快速、準(zhǔn)確地對(duì)用戶定位,其技術(shù)方案如下:
第一方面,本申請(qǐng)一種ip地址庫創(chuàng)建方法,應(yīng)用于服務(wù)端,包括:
獲取應(yīng)用程序?qū)?yīng)日志數(shù)據(jù)中的ip地址;
判斷ip地址庫中是否包含所述ip地址;
當(dāng)所述ip地址庫中不包含所述ip地址時(shí),從ip信息查詢網(wǎng)絡(luò)中,查詢得到所述ip地址對(duì)應(yīng)的地理位置信息;
將所述ip地址和所述地理位置信息對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中。
可選地,所述當(dāng)所述ip地址庫中不包含所述ip地址時(shí),從ip信息查詢網(wǎng)絡(luò)中,查詢得到所述ip地址對(duì)應(yīng)的地理位置信息,包括:
當(dāng)所述ip地址庫中不包含所述ip地址時(shí),從所述ip地址中提取三段式ip數(shù)據(jù);
向所述ip信息查詢網(wǎng)絡(luò)發(fā)送ip查詢請(qǐng)求,所述ip查詢請(qǐng)求攜帶所述三段式ip數(shù)據(jù);
接收所述ip信息查詢網(wǎng)絡(luò)返回的所述三段式ip數(shù)據(jù)對(duì)應(yīng)的地理位置信息。
可選地,所述地理位置信息包括:國家id、省份id、省份名稱、城市id、城市名稱、區(qū)縣id、區(qū)縣名稱,網(wǎng)絡(luò)運(yùn)營商信息;所述ip地址庫中還包括國家標(biāo)識(shí)信息;所述方法還包括:
當(dāng)根據(jù)所述國家id確定所述ip地址所屬國家為中國之外的其它國家時(shí),將所述國家標(biāo)識(shí)信息置為第一預(yù)設(shè)標(biāo)識(shí);
當(dāng)根據(jù)所述國家id確定所述ip地址所屬國家為中國時(shí),將所述國家標(biāo)識(shí)信息置為第二預(yù)設(shè)標(biāo)識(shí)。
可選地,所述將所述ip地址和所述地理位置信息對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中,包括:
判斷從所述ip信息查詢網(wǎng)中獲得的地理位置信息的編碼格式與所述服務(wù)端的編碼格式是否相同;
若編碼格式相同,則直接將所述地理位置信息與所述ip地址對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中;
若編碼格式不同,則將從所述ip信息查詢網(wǎng)中獲得的地理位置信息的編碼轉(zhuǎn)換為所述服務(wù)端所使用的編碼格式,并將所述地理位置信息對(duì)應(yīng)的轉(zhuǎn)換后編碼與所述ip地址對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中。
可選地,所述將所述ip地址和所述地理位置信息對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中,包括:
將所述ip地址和所述地理位置信息對(duì)應(yīng)存入redis數(shù)據(jù)庫中的ip地址庫中,以及,將所述ip地址和所述地理位置信息對(duì)應(yīng)存入mysql數(shù)據(jù)庫中的ip地址庫中。
可選地,所述方法還包括:
按照指定周期更新所述ip地址庫中的ip地址對(duì)應(yīng)的地理位置信息。
第二方面,本申請(qǐng)?zhí)峁┮环Nip地址庫創(chuàng)建裝置,應(yīng)用于服務(wù)端,包括:
第一獲取單元,用于獲取應(yīng)用程序?qū)?yīng)日志數(shù)據(jù)中的ip地址;
判斷單元,用于判斷ip地址庫中是否包含所述ip地址;
查詢單元,用于當(dāng)所述ip地址庫中不包含所述ip地址時(shí),從ip信息查詢網(wǎng)絡(luò)中,查詢得到所述ip地址對(duì)應(yīng)的地理位置信息;
存儲(chǔ)單元,用于將所述ip地址和所述地理位置信息對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中。
可選地,所述查詢單元包括:
提取子單元,用于當(dāng)所述ip地址庫中不包含所述ip地址時(shí),從所述ip地址中提取三段式ip數(shù)據(jù);
請(qǐng)求子單元,用于向所述ip信息查詢網(wǎng)絡(luò)發(fā)送ip查詢請(qǐng)求,所述ip查詢請(qǐng)求攜帶所述三段式ip數(shù)據(jù);
接收子單元,用于接收所述ip信息查詢網(wǎng)絡(luò)返回的所述三段式ip數(shù)據(jù)對(duì)應(yīng)的地理位置信息。
可選地,所述地理位置信息包括:國家id、省份id、省份名稱、城市id、城市名稱、區(qū)縣id、區(qū)縣名稱,網(wǎng)絡(luò)運(yùn)營商信息;所述ip地址庫中還包括國家標(biāo)識(shí)信息;所述裝置還包括:
第一標(biāo)識(shí)單元,用于當(dāng)根據(jù)所述國家id確定所述ip地址所屬國家為中國之外的其它國家時(shí),將所述國家標(biāo)識(shí)信息置為第一預(yù)設(shè)標(biāo)識(shí);
第二標(biāo)識(shí)單元,用于當(dāng)根據(jù)所述國家id確定所述ip地址所屬國家為中國時(shí),將所述國家標(biāo)識(shí)信息置為第二預(yù)設(shè)標(biāo)識(shí)。
可選地,所述裝置還包括:
更新單元,用于按照指定周期更新所述ip地址庫中的ip地址對(duì)應(yīng)的地理位置信息。
本實(shí)施例提供的ip地址庫創(chuàng)建方法,獲取用戶在使用app過程中產(chǎn)生的日志數(shù)據(jù),并從日志數(shù)據(jù)中獲取ip地址;當(dāng)確定ip地址庫中不包含該ip地址時(shí),從ip信息查詢網(wǎng)絡(luò)中查詢?cè)搃p地址對(duì)應(yīng)的地理位置信息;然后,將ip地址和該ip地址對(duì)應(yīng)的地理位置信息對(duì)應(yīng)存儲(chǔ)到ip地址庫中,從而創(chuàng)建了服務(wù)器自有的ip地址庫,無需每次都從ip信息查詢網(wǎng)絡(luò)中獲取地理位置信息,提高了根據(jù)ip地址定位的響應(yīng)速度。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了本申請(qǐng)實(shí)施例一種ip地址庫創(chuàng)建方法的流程圖;
圖2示出了本申請(qǐng)實(shí)施例另一種ip地址庫創(chuàng)建方法的流程圖;
圖3示出了本申請(qǐng)實(shí)施例又一種ip地址庫創(chuàng)建方法的流程圖;
圖4示出了本申請(qǐng)實(shí)施例再一種ip地址庫創(chuàng)建方法的流程圖;
圖5示出了本申請(qǐng)實(shí)施例一種ip地址庫創(chuàng)建裝置的框圖;
圖6示出了本申請(qǐng)實(shí)施例一種查詢單元的框圖;
圖7示出了本申請(qǐng)實(shí)施例另一種ip地址庫創(chuàng)建裝置的框圖;
圖8示出了本申請(qǐng)實(shí)施例又一種ip地址庫創(chuàng)建裝置的框圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參見圖1,示出了本申請(qǐng)實(shí)施例一種ip地址庫創(chuàng)建方法的流程圖,該方法應(yīng)用于與智能終端上安裝的app相對(duì)應(yīng)的服務(wù)器上。如圖1所示,該方法包括以下步驟:
s110,服務(wù)器獲取應(yīng)用程序?qū)?yīng)日志數(shù)據(jù)中的ip地址。
用戶只要向app對(duì)應(yīng)的服務(wù)器請(qǐng)求數(shù)據(jù),就會(huì)產(chǎn)生相應(yīng)的日志數(shù)據(jù),而且,日志數(shù)據(jù)中必然包含用戶使用的ip地址。因此,服務(wù)器在指定時(shí)間(例如,每天零點(diǎn))拉取用戶在指定時(shí)間之前訪問app時(shí)產(chǎn)生的日志數(shù)據(jù),并解析該日志數(shù)據(jù),得到日志數(shù)據(jù)所包含的ip地址。
s120,服務(wù)器判斷ip地址庫中是否包含該ip地址;如果是,則結(jié)束當(dāng)前流程,繼續(xù)獲取下一個(gè)ip地址;如果否,則執(zhí)行s130。
服務(wù)器將解析得到的ip地址與ip地址庫中的ip地址一一對(duì)比,如果ip地址庫中包含該ip地址,則繼續(xù)判斷下一個(gè)ip地址是否包含在ip地址庫中;如果ip地址庫中不包含該ip地址,則執(zhí)行s130的步驟。
在本申請(qǐng)的一個(gè)實(shí)施例中,分別基于redis數(shù)據(jù)庫和mysql數(shù)據(jù)庫各建一個(gè)ip地址庫,redis數(shù)據(jù)庫具有存儲(chǔ)速度快、響應(yīng)速度快等特點(diǎn)。因此,利用基于redis數(shù)據(jù)庫創(chuàng)建的ip地址庫查詢ip地址庫中是否存在待查詢的ip地址。mysql數(shù)據(jù)庫具有清晰的數(shù)據(jù)展示功能,適用于離線分析數(shù)據(jù)使用。
s130,從ip信息查詢網(wǎng)絡(luò)中,查詢得到所述ip地址對(duì)應(yīng)的地理位置信息。
如果服務(wù)器的ip地址庫中不包含該ip地址,則獲取該ip地址的前三段的ip數(shù)據(jù),例如,ip地址是1.1.1.100,則該ip地址對(duì)應(yīng)的三段式ip數(shù)據(jù)是1.1.1。
通常通過ip地址的前三個(gè)字段就能確定該ip地址對(duì)應(yīng)的地理位置信息,即所在城市信息,因此,只需在ip地址庫中存儲(chǔ)三段式ip數(shù)據(jù),這樣,能夠節(jié)省大量的存儲(chǔ)空間。
ip信息查詢網(wǎng)絡(luò)能夠根據(jù)ip地址精確定位出ip地址所在的位置。
在本申請(qǐng)的一個(gè)實(shí)施例中,獲得ip地址對(duì)應(yīng)的三段式ip數(shù)據(jù)后,向ip信息查詢網(wǎng)絡(luò)發(fā)送查詢請(qǐng)求,該查詢請(qǐng)求攜帶所述三段式ip數(shù)據(jù),ip信息查詢網(wǎng)絡(luò)接收到該查詢請(qǐng)求后,查詢?cè)搃p數(shù)據(jù)對(duì)應(yīng)的地理位置信息,其中,該地理位置信息可以包括:國家id、省份id、省份名稱、城市id、城市名稱、區(qū)縣id、區(qū)縣名稱、運(yùn)營商id、運(yùn)營商名稱等信息。
s140,服務(wù)器將所述ip地址和所述地理位置信息對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中。
服務(wù)器接收到ip信息查詢網(wǎng)絡(luò)返回的ip地址對(duì)應(yīng)的地理位置信息后,將該ip地址和對(duì)應(yīng)的地理位置信息對(duì)應(yīng)存儲(chǔ)到服務(wù)器的ip地址庫中。例如,ip地址庫中每一條數(shù)據(jù)條目以“ip,省份id、省份名稱、市id、市名稱、區(qū)縣id、區(qū)縣名稱”的形式存儲(chǔ)。
不斷增加ip地址庫中的ip地址條目,得到ip地址庫。這樣,當(dāng)用戶訪問app時(shí),可以根據(jù)用戶使用的ip地址定位用戶所在城市。
本實(shí)施例提供的ip地址庫創(chuàng)建方法,獲取用戶在使用app過程中產(chǎn)生的日志數(shù)據(jù),并從日志數(shù)據(jù)中獲取ip地址;當(dāng)確定ip地址庫中不包含該ip地址時(shí),從ip信息查詢網(wǎng)絡(luò)中查詢?cè)搃p地址對(duì)應(yīng)的地理位置信息;然后,將ip地址和該ip地址對(duì)應(yīng)的地理位置信息對(duì)應(yīng)存儲(chǔ)到ip地址庫中,從而創(chuàng)建了服務(wù)器自有的ip地址庫,無需每次都從ip信息查詢網(wǎng)絡(luò)中獲取地理位置信息,提高了根據(jù)ip地址定位的響應(yīng)速度。
請(qǐng)參見圖2,示出了本申請(qǐng)實(shí)施例另一種ip地址庫創(chuàng)建方法的流程圖,該方法應(yīng)用于app對(duì)應(yīng)的服務(wù)器中,ip信息查詢網(wǎng)返回的地理位置信息中包含國家id、省份id、城市id、區(qū)縣id等信息,本實(shí)施例在ip地址庫中增加國家標(biāo)識(shí)信息。該方法在圖1所示實(shí)施例的基礎(chǔ)上還包括以下步驟:
s210,當(dāng)根據(jù)國家id確定所述ip地址所屬國家為中國之外的其它國家時(shí),將所述國家標(biāo)識(shí)信息置為第一預(yù)設(shè)標(biāo)識(shí)。
若國家id是cn(中國大陸)、mo(澳門)、hk(香港)、tw(臺(tái)灣),則確定該ip地址所屬國家為中國;若國家id不是上述四種id,則確定該ip地址所屬國家是中國之外的其它國家。
第一預(yù)設(shè)標(biāo)識(shí)可以是二進(jìn)制數(shù),例如,若國家id不是中國,則可以將國家標(biāo)識(shí)信息置為二進(jìn)制數(shù)“0”。
s220,當(dāng)根據(jù)國家id確定所述ip地址所屬國家為中國時(shí),將所述國家標(biāo)識(shí)信息置為第二預(yù)設(shè)標(biāo)識(shí)。
第二預(yù)設(shè)標(biāo)識(shí)與第一預(yù)設(shè)標(biāo)識(shí)相同,可以采用二進(jìn)制數(shù)表示,若國家id是中國,則可以將國家標(biāo)識(shí)信息置為二進(jìn)制數(shù)“1”。
本實(shí)施例提供的ip地址庫創(chuàng)建方法,在ip地址庫中設(shè)置國家標(biāo)識(shí)信息,后續(xù)使用該ip地址庫時(shí),通過國家標(biāo)識(shí)信息就能夠準(zhǔn)確判斷ip所處的國家位置,不需要再對(duì)國家id進(jìn)行匹配,從而提高了查詢效率。
請(qǐng)參見圖3,示出了本申請(qǐng)實(shí)施例又一種ip地址庫創(chuàng)建方法的流程圖,該方法應(yīng)用于服務(wù)器中,本實(shí)施例中,當(dāng)接收到ip信息查詢網(wǎng)返回的地理位置信息后,判斷接收到的地理位置信息的編碼格式與ip地址庫所使用的編碼格式是否相同。如圖3所示,該方法可以包括以下步驟:
s110,服務(wù)器獲取應(yīng)用程序?qū)?yīng)日志數(shù)據(jù)中的ip地址。
s120,服務(wù)器判斷ip地址庫中是否包含該ip地址;如果是,則結(jié)束當(dāng)前流程,繼續(xù)獲取下一個(gè)ip地址;如果否,則執(zhí)行s130。
s130,從ip信息查詢網(wǎng)絡(luò)中,查詢得到所述ip地址對(duì)應(yīng)的地理位置信息。
其中,s110~s130的實(shí)施過程請(qǐng)參見圖1所示的實(shí)施例,此處不再贅述。
s141,判斷所述ip信息查詢網(wǎng)返回的地理位置信息的編碼格式與所述ip地址庫所使用的編碼格式是否相同;如果是,則執(zhí)行s142;如果否,則執(zhí)行s143。
編碼格式主要是指位置名稱對(duì)應(yīng)的id信息,例如,判斷ip信息查詢網(wǎng)返回的地理位置信息中省份名稱對(duì)應(yīng)的省份id與ip地址庫中該省份名稱所對(duì)應(yīng)的省份id是否相同,如果相同,則表明兩者的編碼格式相同;如果不相同,則表明兩者的編碼格式不相同。
s142,直接將地理位置信息與所述ip地址對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中。
若ip信息查詢網(wǎng)返回的地理位置信息的編碼格式與ip地址庫所使用的編碼格式相同,則直接將接收到的地理位置信息與ip地址對(duì)應(yīng)存儲(chǔ)到ip地址庫中。
s143,將從所述ip信息查詢網(wǎng)中獲得的地理位置信息的編碼轉(zhuǎn)換為所述服務(wù)端所使用的編碼格式。
若ip信息查詢網(wǎng)返回的地理位置信息的編碼格式與ip地址庫所使用的編碼格式不相同,則需要將接收到的地理位置的編碼格式進(jìn)行轉(zhuǎn)換。
在本申請(qǐng)的一個(gè)實(shí)施例中,根據(jù)ip信息查詢網(wǎng)返回的地理位置信息中最詳細(xì)的位置的名稱信息查找ip地址庫的字典表查找到該名稱對(duì)應(yīng)的id;例如,地理位置信息中最詳細(xì)的位置名稱是城市名稱,則查詢字典表得到該城市名稱對(duì)應(yīng)的城市id及該城市所屬省份id;如果地理位置信息中最詳細(xì)的位置名稱是省份名稱,則查詢字典表得到該省份名稱對(duì)應(yīng)的省份id;如果地理位置信息中最詳細(xì)的位置名稱是區(qū)縣名稱,則查詢字典表得到該區(qū)縣名稱對(duì)應(yīng)的區(qū)縣id、所屬城市id、所屬省份id。
s144,將所述地理位置信息對(duì)應(yīng)的轉(zhuǎn)換后編碼與所述ip地址對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中。
將地理位置得到的id信息和ip地址對(duì)應(yīng)存儲(chǔ)到ip地址庫中。
本實(shí)施例提供的ip地址庫創(chuàng)建方法,當(dāng)接收到的地理位置信息的編碼格式與ip地址庫所使用的編碼格式不相同時(shí),將地理位置的編碼轉(zhuǎn)換成ip地址庫所使用的編碼,然后,再將編碼格式轉(zhuǎn)換后的地理位置信息和ip地址對(duì)應(yīng)存儲(chǔ)到ip地址庫中。從而實(shí)現(xiàn)ip地址庫中的數(shù)據(jù)與服務(wù)器全平臺(tái)數(shù)據(jù)的統(tǒng)一。
請(qǐng)參見圖4,示出了本申請(qǐng)實(shí)施例再一種ip地址庫創(chuàng)建方法的流程圖,該方法在上述方法實(shí)施例的基礎(chǔ)上增加更新ip地址庫的步驟。如圖4所示,本實(shí)施例在圖1所示實(shí)施例的基礎(chǔ)上還包括:
s310,按照指定周期更新所述ip地址庫中的ip地址對(duì)應(yīng)的地理位置信息。
指定周期可以根據(jù)需求設(shè)定,例如,一周、一個(gè)月等。
在本申請(qǐng)的一個(gè)實(shí)施例中,讀取基于mysql數(shù)據(jù)庫的ip地址庫中存儲(chǔ)的全部ip地址,請(qǐng)求ip信息查詢網(wǎng),獲得ip地址對(duì)應(yīng)的地理位置信息并存儲(chǔ)到mysql臨時(shí)表中,逐個(gè)比較同一ip地址在mysql數(shù)據(jù)庫中對(duì)應(yīng)的地理位置信息和mysql臨時(shí)表中的地理位置信息是否相同,如果相同,則不需要更新;如果不同,則需要更新;對(duì)比結(jié)束后得到需要更新的ip信息,然后,根據(jù)mysql臨時(shí)表中的地理位置信息更新mysql數(shù)據(jù)庫中的ip地址庫數(shù)據(jù)和redis數(shù)據(jù)庫的ip地址庫數(shù)據(jù)。
本實(shí)施例提供的ip地址庫創(chuàng)建方法,定期更新ip地址庫中的已有ip數(shù)據(jù),從而保證ip地址庫中的數(shù)據(jù)的有效性,提高ip地址查詢的準(zhǔn)確率。
對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
相應(yīng)于上述的ip地址庫創(chuàng)建方法實(shí)施例,本申請(qǐng)還提供了ip地址庫創(chuàng)建裝置實(shí)施例。
請(qǐng)參見圖5,示出了本申請(qǐng)實(shí)施例一種ip地址庫創(chuàng)建裝置的框圖,該裝置應(yīng)用于服務(wù)器中,如圖5所示,該裝置包括:第一獲取單元110、判斷單元120、查詢單元130和存儲(chǔ)單元140。
第一獲取單元110,用于獲取應(yīng)用程序?qū)?yīng)日志數(shù)據(jù)中的ip地址。
用戶只要向app對(duì)應(yīng)的服務(wù)器請(qǐng)求數(shù)據(jù),就會(huì)產(chǎn)生相應(yīng)的日志數(shù)據(jù),而且,日志數(shù)據(jù)中必然包含用戶使用的ip地址。服務(wù)器在指定時(shí)間(例如,每天零點(diǎn))拉取用戶在指定時(shí)間之前訪問app時(shí)產(chǎn)生的日志數(shù)據(jù),并解析該日志數(shù)據(jù),得到日志數(shù)據(jù)所包含的ip地址。
判斷單元120,用于判斷ip地址庫中是否包含所述ip地址。
服務(wù)器將解析得到的ip地址與ip地址庫中的ip地址一一對(duì)比,如果ip地址庫中包含該ip地址,則繼續(xù)判斷下一個(gè)ip地址是否包含在ip地址庫中;如果ip地址庫中不包含該ip地址,則控制查詢單元執(zhí)行相應(yīng)的步驟。
在本申請(qǐng)的一個(gè)實(shí)施例中,分別基于redis數(shù)據(jù)庫和mysql數(shù)據(jù)各建一個(gè)ip地址庫,redis數(shù)據(jù)具有存儲(chǔ)速度快、響應(yīng)速度快等特點(diǎn)。因此,利用基于redis數(shù)據(jù)庫創(chuàng)建的ip地址庫查詢ip地址庫中是否存在待查詢的ip地址。
查詢單元130,用于當(dāng)所述ip地址庫中不包含所述ip地址時(shí),從ip信息查詢網(wǎng)絡(luò)中,查詢得到所述ip地址對(duì)應(yīng)的地理位置信息。
在本申請(qǐng)的一個(gè)實(shí)施例中,如圖6所示,查詢單元包括提取子單元131、請(qǐng)求子單元132和接收子單元133。
提取子單元131,用于當(dāng)ip地址庫中不包含所述ip地址時(shí),從所述ip地址中提取三段式ip數(shù)據(jù)。
通常通過ip地址的前三個(gè)字段就能確定該ip地址對(duì)應(yīng)的地理位置信息,即所在城市信息,因此,只需在ip地址庫中存儲(chǔ)三段式ip數(shù)據(jù),這樣,能夠節(jié)省大量的存儲(chǔ)空間。
請(qǐng)求子單元132,用于向ip信息查詢網(wǎng)絡(luò)發(fā)送ip查詢請(qǐng)求,所述ip查詢請(qǐng)求攜帶所述三段式ip數(shù)據(jù)。
接收子單元133,用于接收ip信息查詢網(wǎng)絡(luò)返回的三段式ip數(shù)據(jù)對(duì)應(yīng)的地理位置信息。
地理位置信息可以包括:國家id、省份id、省份名稱、城市id、城市名稱、區(qū)縣id、區(qū)縣名稱、運(yùn)營商id、運(yùn)營商名稱等信息。
存儲(chǔ)單元140,用于將所述ip地址和所述地理位置信息對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中。
例如,ip地址庫中每一條數(shù)據(jù)條目以“ip,省份id、省份名稱、市id、市名稱、區(qū)縣id、區(qū)縣名稱”的形式存儲(chǔ)。
在本申請(qǐng)的一個(gè)實(shí)施例中,接收到ip信息查詢網(wǎng)返回的地理位置信息后,首先判斷該地理位置信息的編碼和ip地址庫所使用的編碼是否相同(編碼格式主要是指位置名稱對(duì)應(yīng)的id信息),若編碼格式相同,則直接將所述地理位置信息與所述ip地址對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中;若編碼格式不同,則將從所述ip信息查詢網(wǎng)中獲得的地理位置信息的編碼轉(zhuǎn)換為所述服務(wù)端所使用的編碼格式,并將所述地理位置信息對(duì)應(yīng)的轉(zhuǎn)換后編碼與所述ip地址對(duì)應(yīng)存儲(chǔ)到所述ip地址庫中。
本實(shí)施例提供的ip地址庫創(chuàng)建裝置,獲取用戶在使用app過程中產(chǎn)生的日志數(shù)據(jù),并從日志數(shù)據(jù)中獲取ip地址;當(dāng)確定ip地址庫中不包含該ip地址時(shí),從ip信息查詢網(wǎng)絡(luò)中查詢?cè)搃p地址對(duì)應(yīng)的地理位置信息;然后,將ip地址和該ip地址對(duì)應(yīng)的地理位置信息對(duì)應(yīng)存儲(chǔ)到ip地址庫中,從而創(chuàng)建了服務(wù)器自有的ip地址庫,無需每次都從ip信息查詢網(wǎng)絡(luò)中獲取地理位置信息,提高了根據(jù)ip地址定位的響應(yīng)速度。
請(qǐng)參見圖7,示出了本申請(qǐng)實(shí)施例另一種ip地址庫創(chuàng)建裝置的框圖,ip地址庫中還包括國家標(biāo)識(shí)信息。如圖7所示,該裝置在圖5所示實(shí)施例的基礎(chǔ)上包括:第一標(biāo)識(shí)單元210和第二標(biāo)識(shí)單元220。
第一標(biāo)識(shí)單元210,用于當(dāng)根據(jù)所述國家id確定所述ip地址所屬國家為中國之外的其它國家時(shí),將所述國家標(biāo)識(shí)信息置為第一預(yù)設(shè)標(biāo)識(shí)。
若國家id是cn(中國大陸)、mo(澳門)、hk(香港)、tw(臺(tái)灣),則確定該ip地址所屬國家為中國;若國家id不是上述四種id,則確定該ip地址所屬國家是中國之外的其它國家。
第一預(yù)設(shè)標(biāo)識(shí)可以是二進(jìn)制數(shù),例如,若國家id不是中國,則可以將國家標(biāo)識(shí)信息置為二進(jìn)制數(shù)“0”。
第二標(biāo)識(shí)單元220,用于當(dāng)根據(jù)所述國家id確定所述ip地址所屬國家為中國時(shí),將所述國家標(biāo)識(shí)信息置為第二預(yù)設(shè)標(biāo)識(shí)。
第二預(yù)設(shè)標(biāo)識(shí)與第一預(yù)設(shè)標(biāo)識(shí)相同,可以采用二進(jìn)制數(shù)表示,若國家id是中國,則可以將國家標(biāo)識(shí)信息置為二進(jìn)制數(shù)“1”。
本實(shí)施例提供的ip地址庫創(chuàng)建裝置,在ip地址庫中設(shè)置國家標(biāo)識(shí)信息,后續(xù)使用該ip地址庫時(shí),通過國家標(biāo)識(shí)信息就能夠準(zhǔn)確判斷ip所處的國家位置,不需要再對(duì)國家id進(jìn)行匹配,從而提高了查詢效率。
請(qǐng)參見圖8,示出了本申請(qǐng)實(shí)施例又一種ip地址庫創(chuàng)建裝置的框圖,該裝置應(yīng)用于服務(wù)器中,如圖8所示,該裝置在圖5所示實(shí)施例的基礎(chǔ)上還包括更新單元310。
更新單元310,用于按照指定周期更新所述ip地址庫中的ip地址對(duì)應(yīng)的地理位置信息。
指定周期可以根據(jù)需求設(shè)定,例如,一周、一個(gè)月等。
在本申請(qǐng)的一個(gè)實(shí)施例中,讀取基于mysql數(shù)據(jù)庫的ip地址庫中存儲(chǔ)的全部ip地址,請(qǐng)求ip信息查詢網(wǎng),獲得ip地址對(duì)應(yīng)的地理位置信息并存儲(chǔ)到mysql臨時(shí)表中,逐個(gè)比較同一ip地址在mysql數(shù)據(jù)庫中對(duì)應(yīng)的地理位置信息和mysql臨時(shí)表中的地理位置信息是否相同,如果相同,則不需要更新;如果不同,則需要更新;對(duì)比結(jié)束后得到需要更新的ip信息,然后,根據(jù)mysql臨時(shí)表中的地理位置信息更新mysql數(shù)據(jù)庫中的ip地址庫數(shù)據(jù)和redis數(shù)據(jù)庫的ip地址庫數(shù)據(jù)。
本實(shí)施例提供的ip地址庫創(chuàng)建裝置,定期更新ip地址庫中的已有ip數(shù)據(jù),從而保證ip地址庫中的數(shù)據(jù)的有效性,提高ip地址查詢的準(zhǔn)確率。
需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。對(duì)于裝置類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。