IP 全球地理位置資料庫開發日誌
話說從頭, 這是中文式流水帳。
開發的綠起是為了把 streetview.cc 的入口寫的完美一些,
所以在網路上找了些免費的 IP 資料庫來使用,
想利用 IP 來定位 Google Maps 的起始位置。
開始先找到的是 MaxMind 的 GeoLite2 (GeoIP2免費版),
接著就花了點時間把將近三百萬筆資料寫進 MySql 裡,
接著隨機性的測試一下, 還可以哇!!
然後發現怎麼故鄉台灣的IP都只能定位到陳有蘭溪??
稍稍研究之後, 原來似乎還沒有人把台灣的IP區段給補完, (人才都跑那去了?)
也許警政或調查機關有, 不過我沒有找到就是了~~
最接近的就是 IPIP.net 的創辦人高先生在今年初時自己的微博說:
「 嗯,就在刚才,已经把手里的台湾的IP 库地级市和区县库数据都搞定了,貌似这个是全球独一份吧?台湾本地公司都没有。。」
哇, 牛人說牛話了, 於是我花了點時間在 IPIP.net 上撈了一份 17monipdb 做再開發。
只是 17monipdb 可能是免費的關係, 數據上有些許錯誤,
不過對於鑑別中國IP的地理應該還是可以的,
所以我就花了點時間把 17monipdb的結果(中國) 整合到 GeoLite2 之中。
然而, 這並沒有解決陳有蘭溪的問題。
我又把念頭放到再來轉個資料庫看看, 查了查。決定就是你了!!
IP2LOCATION 上吧!! (其實真沒有幾家有開源的)
抓回來一看, 天啊!! 4百多萬筆資料啊!!
不過有了匯入 GeoIP2 的經驗, 不怕不怕。
花了些時間等待匯入資料庫後, 交叉比對目前這兩大開源的資料庫如下:
從上表可知, IP2LOCATION 對於IP表切得較細, 不過對於地理地址定位來說, GeoIP2 的比較齊全,
另外IP2LOCATION是只有一張資料表, 在執行上的效率較差, GeoIP2是兩張表格, 效率較好。
理想的作法應該是採用 GeoIP2 的資料結構, 補上 IP2LOCATION 的有效資料。
雖然這樣能解決陳有蘭溪的問題, 不過我得回頭做別的事了。
目前的作法是把IP2LOCATION列為參考資料, 待有空或是有想法時再將兩個資料庫整合再一起囉。
未來的開發的意向大概就是把兩個資料庫截長補短, 然後整合進一個台灣的IP區段, 為家鄉盡一份心力;
然後再加上 Google Maps 的定位去自動資料庫的校正和補充。就算大功告成啦~
現就以此文將此開發暫告一段落; 我得來繼續寫 streetview.cc 大數據!!
--