php - php中的IP API查找优化
问题描述
我正在尝试限制对 IP 地理定位 API 的请求数量,我想知道这是否能准确确定用户国家;
我的IP表
id |-----ip-----| 国家|
1 | 1.194.121.200 | 美国
如果我的数据库中有上述内容,我是否可以将相同的国家/地区用于前两个八位字节中具有相同整数的 IP (1.194.208.105) ,以避免另一个 API 请求?
解决方案
不可靠,不。
- IP 子网通过位掩码工作,位掩码仅偶尔与点分四字节对齐。
- IP 分配发生变化。
- 由于 IPv4 稀缺性块经常被分成越来越小的块,分配在网络规模和地理方面可能会发生巨大变化。
例如:几年前,Azure 遇到了问题,因为他们从 LACNIC [南美洲] 购买了一块 IP 用于他们位于美国的云中。这造成了各种各样的破坏,因为使用过时的 IP 注册/地理位置数据的人开始抱怨他们不希望他们的数据位于美国以外。
无论如何,将每个 IP 的结果缓存一段合理的时间,但是除非您的 API 提供商为您提供该数据,或者您想要构建自己的 IP 地理定位服务,否则您将无法通过 netblock 进行缓存。
推荐阅读
- r - 如何在闪亮的单个情节悬停文本中集成来自多个跟踪的信息
- c++ - 元组元素是只读的?
- python - 尝试在 Thonny IDE 上安装 tensorflow 时出错
- git - 收到致命错误:无法读取“https://github.com”的用户名:在终端中构建项目时终端提示已禁用
- javascript - For 循环滚动数组。有一个错误(this.tiles[i] 未定义)。如何解决这个问题?
- mysql - 如何找到同一天交易两次和不到 10 分钟连续交易的人
- rubygems - ubuntu windows 10下的Rubymine ruby在后台复制完整的C盘
- java - 如何获取json数组中子数组的值
- python - Python Beautiful Soup get part of text after the
- c++ - Identifier not found? (Visual Studio)