作者banana2014 (香蕉共和国)
看板PHP
标题[问题] 关於用ip判断该使用者的国家的问题...
时间Wed May 6 16:56:53 2015
最近我想使用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://webptt.com/cn.aspx?n=bbs/PHP/M.1430902617.A.DBB.html
1F:→ twsphere: php GeoIP 05/06 16:59
2F:→ banana2014: 但是geoip有点不准耶… 05/06 17:16
3F:→ y2468101216: 你可以把CSV塞在资料库里 05/06 17:25
4F:→ banana2014: 塞近database里不会有读取的档案太大或速度太慢等问题 05/06 18:02
5F:→ banana2014: 吗? 05/06 18:02
6F:→ wannawanna: 你读档案才会有这种问题 DB就是为了解决这种问题而生 05/06 18:55
7F:推 red0whale: 用资料库汇入吧... 05/06 19:06
8F:→ garypayton5: 5MB小菜一叠而已 05/06 19:50
9F:→ banana2014: 「小菜一碟」是…? 05/06 20:27
10F:→ tper8042: 5MB对资料库来说不算什麽 05/06 20:56
11F:→ poiuy999: 目标是什麽 转语系 用浏览器的语系分就好了 05/06 21:58
12F:→ mmis1000: 资料库就是为了应付大量资料用的阿,5MB根本不痛不痒 05/06 23:50
13F:→ MOONRAKER: 挺幽默的。 05/07 06:36
14F:推 rockmanalpha: 资料库就是用来存大量资料的 你索引做得好 效能还会 05/07 09:50
15F:→ rockmanalpha: 更好 你搜寻的时候是用KEY下去找 不存在 full table 05/07 09:52
16F:→ rockmanalpha: scan的问题 速度不会慢 05/07 09:52