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

看板PHP作者 (香蕉共和國)時間10年前 (2015/05/06 16:56), 編輯推噓2(2014)
留言16則, 11人參與, 最新討論串1/1
最近我想使用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

05/06 16:59, , 1F
php GeoIP
05/06 16:59, 1F

05/06 17:16, , 2F
但是geoip有點不準耶…
05/06 17:16, 2F

05/06 17:25, , 3F
你可以把CSV塞在資料庫裡
05/06 17:25, 3F

05/06 18:02, , 4F
塞近database裡不會有讀取的檔案太大或速度太慢等問題
05/06 18:02, 4F

05/06 18:02, , 5F
嗎?
05/06 18:02, 5F

05/06 18:55, , 6F
你讀檔案才會有這種問題 DB就是為了解決這種問題而生
05/06 18:55, 6F

05/06 19:06, , 7F
用資料庫匯入吧...
05/06 19:06, 7F

05/06 19:50, , 8F
5MB小菜一疊而已
05/06 19:50, 8F

05/06 20:27, , 9F
「小菜一碟」是…?
05/06 20:27, 9F

05/06 20:56, , 10F
5MB對資料庫來說不算什麼
05/06 20:56, 10F

05/06 21:58, , 11F
目標是什麼 轉語系 用瀏覽器的語系分就好了
05/06 21:58, 11F

05/06 23:50, , 12F
資料庫就是為了應付大量資料用的阿,5MB根本不痛不癢
05/06 23:50, 12F

05/07 06:36, , 13F
挺幽默的。
05/07 06:36, 13F

05/07 09:50, , 14F
資料庫就是用來存大量資料的 你索引做得好 效能還會
05/07 09:50, 14F

05/07 09:52, , 15F
更好 你搜尋的時候是用KEY下去找 不存在 full table
05/07 09:52, 15F

05/07 09:52, , 16F
scan的問題 速度不會慢
05/07 09:52, 16F
文章代碼(AID): #1LITTPsx (PHP)