全網(wǎng)顯示IP歸屬地,準(zhǔn)確率99.9%,這個(gè)開源的 API 離線庫強(qiáng)大到離譜!
GPT-4 Plus賬號(hào)又降價(jià)了!
Sora社群,正式上線!
最新版Pycharm 2022.3最新激活教程,有效期到2099年!
1
前言經(jīng)常瀏覽小視頻或各類帖子的朋友們可能已經(jīng)注意到,目前許多網(wǎng)絡(luò)平臺(tái)都會(huì)顯示作者和評(píng)論區(qū)用戶的IP歸屬地。 那么,這個(gè)功能是如何實(shí)現(xiàn)的呢?
2
某些收費(fèi)平臺(tái)的API我們可以利用一些付費(fèi)平臺(tái)的API來實(shí)現(xiàn)這一功能,比如一些導(dǎo)航軟件的開放平臺(tái)API等。 然而,這些服務(wù)通常是收費(fèi)的,而且免費(fèi)額度有限,適合測試使用,但如果要在生產(chǎn)環(huán)境中使用,很可能不夠支撐需求。
3
離線庫推薦那么,有沒有免費(fèi)的離線API庫呢? UP現(xiàn)在推薦一個(gè)強(qiáng)大的離線庫給大家,一個(gè)準(zhǔn)確率高達(dá)99.9%的離線IP地址定位庫,查詢速度僅需0.0x毫秒,而且數(shù)據(jù)庫僅10兆字節(jié)大小。
此庫提供了Java、PHP、C、Python、Node.js、Golang、C#等多種查詢綁定,同時(shí)支持Binary、B樹和內(nèi)存三種查詢算法。
- 開源地址:https://github.com/zoujingli/ip2region
4
使用
下面使用Java代碼給大家演示下如何使用這個(gè)IP庫,該庫目前支持多重主流語言。
1、引入依賴
<dependency>
<groupId>org.lionsoul</groupId>
<artifactId>ip2region</artifactId>
<version>2.7.0</version>
</dependency>
2、下載離線庫文件 ip2region.xdb
3、簡單使用代碼
下面,我們通過Java代碼,挑選某個(gè)國內(nèi)的IP進(jìn)行測試,看看會(huì)輸出什么樣的結(jié)果。
public class IpTest {
public static void main(String[] args) throws Exception {
// 1、創(chuàng)建 searcher 對(duì)象 (修改為離線庫路徑)
String dbPath = "C:\Users\Administrator\Desktop\ip2region.xdb";
Searcher searcher = null;
try {
searcher = Searcher.newWithFileOnly(dbPath);
} catch (Exception e) {
System.out.printf("failed to create searcher with `%s`: %s\n", dbPath, e);
return;
}
// 2、查詢
String ip = "110.242.68.66";
try {
long sTime = System.nanoTime(); // Happyjava
String region = searcher.search(ip);
long cost = TimeUnit.NANOSECONDS.toMicros((long) (System.nanoTime() - sTime));
System.out.printf("{region: %s, ioCount: %d, took: %d μs}\n", region, searcher.getIOCount(), cost);
} catch (Exception e) {
System.out.printf("failed to search(%s): %s\n", ip, e);
}
// 3、關(guān)閉資源
searcher.close();
// 備注:并發(fā)使用,每個(gè)線程需要?jiǎng)?chuàng)建一個(gè)獨(dú)立的 searcher 對(duì)象單獨(dú)使用。
}
}
輸出結(jié)果為:
{region: 中國|0|河北省|保定市|聯(lián)通, ioCount: 3, took: 1192 μs}
其中,region的格式為 國家|區(qū)域|省份|城市|ISP,缺省的地域信息默認(rèn)是0。
當(dāng)然,這個(gè)庫不只是支持國內(nèi)的IP,也支持國外的IP。
其他語言可以參考該開源庫的說明文檔。
5
總結(jié)
這是一個(gè)準(zhǔn)確率非常高的離線庫,如果項(xiàng)目里有IP定位需求的,可以試下該庫。
- EOF -
作者簡介
老鄧,公眾號(hào)8年博主,互聯(lián)網(wǎng)大廠工作第9年,年入七位數(shù)。全網(wǎng)粉絲20w,帶領(lǐng)2000+小白一起創(chuàng)業(yè)。
如果想要系統(tǒng)學(xué)習(xí)Python、Python問題咨詢,或者考慮做一些工作以外的副業(yè),都可以掃描二維碼添加微信,圍觀老鄧朋友圈一起交流學(xué)習(xí)。
星球服務(wù)
