尝试确定GeoIP查找的最佳解决方案。
选项似乎是:
1。下载高级数据库并进行查找
2。下载一个免费的数据库并进行查找
3。点击免费网站API
4。点击付费网站API。
我们必须在用户登录时这样做,所以这种情况会经常发生。
一个重要的问题是IP地址位置是否改变,如果改变,多久改变一次。例如,我们可以用免费的web API构建自己的数据库,存储它返回给我们的每个IP位置,但只有当它们相对持久时,这才是可行的。
此外,我们正在查看的付费数据库每月更新一次,这可能还不够,具体取决于这些数据库是否/多久更新一次。
谢谢!
无法保证IP对某个位置的持久性。事实上,有些公司充当IPv4地址的代理,因为我们开始缺少它们。麻省理工学院拥有的18.0.0.0/8可能已经在一个地方存在了30年。其他人可能已经四处走动了。
至于维护某种网络API的地址的本地缓存,我建议不要这样做。如果你做一个1:1的IP->lat/long表,那么你说的是总共2^32个条目,每个50字节=200GB。很明显,这些可以被压缩到子网等等,但现在你开始做GeoIP公司非常擅长的工作,并取得了显著的领先。Debian附带的免费IP->国家数据库在我的机器上只安装了5MB。
从程序员生产力的角度来看,要想在速度和可靠性方面击败具有客户端库的可下载数据库是很困难的。
MaxMind有IP->国家和IP->城市的免费数据库,但您必须在您的网站/产品上发布通知,如"此产品包括MaxMind创建的GeoLite数据,可从http://www.maxmind.com"这更多的是一个商业决策,而不是一个技术决策