看板 PHP 關於我們 聯絡資訊
最近我想使用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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.80.132.171 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1430902617.A.DBB.html
twsphere: php GeoIP 05/06 16:59
banana2014: 但是geoip有點不準耶… 05/06 17:16
y2468101216: 你可以把CSV塞在資料庫裡 05/06 17:25
banana2014: 塞近database裡不會有讀取的檔案太大或速度太慢等問題 05/06 18:02
banana2014: 嗎? 05/06 18:02
wannawanna: 你讀檔案才會有這種問題 DB就是為了解決這種問題而生 05/06 18:55
red0whale: 用資料庫匯入吧... 05/06 19:06
garypayton5: 5MB小菜一疊而已 05/06 19:50
banana2014: 「小菜一碟」是…? 05/06 20:27
tper8042: 5MB對資料庫來說不算什麼 05/06 20:56
poiuy999: 目標是什麼 轉語系 用瀏覽器的語系分就好了 05/06 21:58
mmis1000: 資料庫就是為了應付大量資料用的阿,5MB根本不痛不癢 05/06 23:50
MOONRAKER: 挺幽默的。 05/07 06:36
rockmanalpha: 資料庫就是用來存大量資料的 你索引做得好 效能還會 05/07 09:50
rockmanalpha: 更好 你搜尋的時候是用KEY下去找 不存在 full table 05/07 09:52
rockmanalpha: scan的問題 速度不會慢 05/07 09:52