GeoIP 查找——选项和数据持久性
Posted
技术标签:
【中文标题】GeoIP 查找——选项和数据持久性【英文标题】:GeoIP look-up -- options and data persistence 【发布时间】:2012-11-30 22:24:51 【问题描述】:尝试确定 GeoIP 查找的最佳解决方案。
选项似乎是: 1. 下载高级数据库并进行查找 2. 下载免费数据库并进行查找 3. 点击免费的 Web API 4.点击付费网络API。
我们将不得不在用户登录时执行此操作,因此会经常发生。
一个重要的问题是 IP 地址位置是否会改变,如果改变,频率如何。例如,我们可以使用免费的 Web API 构建自己的数据库,存储它返回给我们的每个 IP 位置,但这只有在它们相对持久的情况下才可行。
此外,我们正在查看的付费数据库每月更新一次,这可能还不够,具体取决于这些更改的频率/频率。
谢谢!
【问题讨论】:
【参考方案1】:对于某个位置的持久性 IP 的程度无法保证。实际上有一些公司充当 IPv4 地址的经纪人,因为我们的 IPv4 地址已经开始不足。 MIT 拥有的 18.0.0.0/8 可能已经在一个地方存在了 30 年。其他人可能移动得更多。
就维护来自某种 Web API 的地址的本地缓存而言,我建议不要这样做。如果你做一个 1:1 IP->lat/long 表,那么你说的是总共 2^32 个条目,每个条目 50 个字节 = 200GB。显然,这些可以被压缩到子网等中,但现在你开始做 GeoIP 公司非常擅长的工作并且有一个重要的开端。 Debian 附带的免费 IP->Country 数据库在我的机器上只安装了 5MB。
从程序员生产力的角度来看,在速度和可靠性方面很难击败具有客户端库的可下载数据库。
MaxMind 拥有 IP->Country 和 IP->City 的免费数据库,但您必须在您的网站/产品上注明“此产品包含 MaxMind 创建的 GeoLite 数据,可从 http://www.maxmind.com 获取”商业决策胜于技术决策。
【讨论】:
以上是关于GeoIP 查找——选项和数据持久性的主要内容,如果未能解决你的问题,请参考以下文章