毫秒級查詢的離線IP地址定位庫,太實用了!

Github導航站發表於2021-03-24

  大家好,我是為廣大程式設計師兄弟操碎了心的小編,每天推薦一個小工具/原始碼,裝滿你的收藏夾,每天分享一個小技巧,讓你輕鬆節省開發效率,實現不加班不熬夜不掉頭髮,是我的目標!

  我們們程式設計師開發任何系統,基本上都需要查詢IP地址,比如操作日誌、登入IP等等。今天小編推薦一款Ip地址庫,準確率99.9%的離線IP地址定位庫,0.0x毫秒級查詢,這個庫資料庫只有數MB,提供了java,php,c,python,nodejs,golang,c#等查詢繫結和Binary,B樹,記憶體三種查詢演算法。

開源協議

  使用 Apache-2.0 開源許可協議

連結地址

  公眾號【Github導航站】回覆關鍵詞【ip2】獲取git地址

99.9%準確率

  資料聚合了一些知名ip到地名查詢提供商的資料,這些是他們官方的的準確率,經測試著實比經典的純真IP定位準確一些。   本庫資料聚合自以下服務商的開放API或者資料(升級程式每秒請求次數2到4次):

  • 01, >80%, 淘寶IP地址庫
  • 02, ≈10%, GeoIP
  • 03, ≈2%, 純真IP庫

**備註:**如果上述開放API或者資料都不給開放資料時,該庫將停止資料的更新服務。

標準化的資料格式

  每條ip資料段都固定了格式:

_城市Id|國家|區域|省份|城市|ISP_
複製程式碼

  只有中國的資料精確到了城市,其他國家有部分資料只能定位到國家,後前的選項全部是0,已經包含了全部你能查到的大大小小的國家(請忽略前面的城市Id,個人專案需求)。

體積小

  包含了全部的IP,生成的資料庫檔案只有幾MB,最小的版本只有1.5MB,隨著資料的詳細度增加資料庫的大小也慢慢增大,目前還沒超過8MB。

查詢速度快

  全部的查詢客戶端單次查詢都在0.x毫秒級別,內建了三種查詢演算法

  1. memory演算法:整個資料庫全部載入記憶體,單次查詢都在0.1x毫秒內,C語言的客戶端單次查詢在0.00x毫秒級別。
  2. binary演算法:基於二分查詢,不需要載入記憶體,單次查詢在0.x毫秒級別。
  3. b-tree演算法:基於btree演算法,不需要載入記憶體,單詞查詢在0.x毫秒級別,比binary演算法更快。

任何客戶端b-tree都比binary演算法快,當然memory演算法固然是最快的!

多查詢客戶端的支援

已經整合的客戶端有:java、C#、php、c、python、nodejs、php擴充套件(php5和php7)、golang、rust、lua、lua_c, nginx。

image-20210321114217969

結尾

  本期就分享到這裡,我是小編南風吹,專注分享好玩有趣、新奇、實用的開源專案及開發者工具、學習資源!希望能與大家共同學習交流,歡迎關注我的公眾號**【Github導航站】**。

相關文章