[問題] 關於用ip判斷該使用者的國家的問題...

作者: banana2014 (香蕉共和國)   2015-05-06 16:56:53
最近我想使用ip來判斷客戶端來自哪個國家,
於是上網找了一下,
雖然有找到http://api.hostip.info/country.php?ip=xxx.xxx.xxx.xxx這個網頁來查詢
不過萬一這個網站出了問題就沒用了
於是找了另外一個方法
就是用ip-to-country.csv這個對應表來找客戶端ip所對應的值是介於哪個範圍之間
但是這又衍生出另外一個問題出來,那就是:「檔案太大了」
一個ip-to-country.csv檔往往都超過5 MB以上,要php讀取該檔案並找尋其ip所介定的範
圍在哪裡實在是太困難了,因此要找到該ip所在的範圍為何要怎麼做才能快又準確? 如何
在一個檔案中找尋第一次出現該字首處? 以上是我的問題,若能幫我解決敬請多多指教,
謝謝各位!
ip-to-country.csv(dbip-country.csv)位址:
http://download.db-ip.com/free/dbip-country-2015-05.csv.gz
作者: twsphere (人歪吃草~~)   2015-05-06 16:59:00
php GeoIP
作者: banana2014 (香蕉共和國)   2015-05-06 17:16:00
但是geoip有點不準耶…
作者: y2468101216 (芸)   2015-05-06 17:25:00
你可以把CSV塞在資料庫裡
作者: banana2014 (香蕉共和國)   2015-05-06 18:02:00
塞近database裡不會有讀取的檔案太大或速度太慢等問題嗎?
作者: wannawanna (艾維斯)   2015-05-06 18:55:00
你讀檔案才會有這種問題 DB就是為了解決這種問題而生
作者: red0whale (red whale)   2015-05-06 19:06:00
用資料庫匯入吧...
作者: garypayton5 (熱情仲夏)   2015-05-06 19:50:00
5MB小菜一疊而已
作者: banana2014 (香蕉共和國)   2015-05-06 20:27:00
「小菜一碟」是…?
作者: tper8042 (tper8042)   2015-05-06 20:56:00
5MB對資料庫來說不算什麼
作者: poiuy999 (Nines)   2015-05-06 21:58:00
目標是什麼 轉語系 用瀏覽器的語系分就好了
作者: mmis1000 (秋月戀楓)   2015-05-06 23:50:00
資料庫就是為了應付大量資料用的阿,5MB根本不痛不癢
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-05-07 06:36:00
挺幽默的。
作者: rockmanalpha (KIN)   2015-05-07 09:50:00
資料庫就是用來存大量資料的 你索引做得好 效能還會更好 你搜尋的時候是用KEY下去找 不存在 full tablescan的問題 速度不會慢

Links booklink

Contact Us: admin [ a t ] ucptt.com