修复了用于测试国家/地区检测的全球IP?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修复了用于测试国家/地区检测的全球IP?相关的知识,希望对你有一定的参考价值。

我正在将我的应用程序与一些国家检测模块集成。总体逻辑是:

  1. 检测客户端IP
  2. 在Geo IP DB中查找IP(为简单起见,我们假设它是MaxMind DB)
  3. 识别基于IP的国家代码
  4. 一些其他业务逻辑基于该国家/地区代码

这非常有效,但我在编写自动化集成测试时遇到了问题。

有一种方法可以覆盖(强制)某些测试IP,但问题是所有的IP都在周期性地改变,并且由于这个原因我不时地进行测试。

任何想法如何稳定这些测试?我有一个想法是,如果世界各地有一个主要ISP的目录,但找不到它。

谢谢!

答案

您可以在测试环境中覆盖GeoIP查找服务,以返回某些测试IP的固定值。但这仅测试#4。要测试#1,2,3,您需要使用真实的IP地址。

如果您的需求仅限于少数几个国家/地区,则可以购买具有固定IP的私有代理,并通过具有固定IP的代理客户端运行测试。

要大规模自动化,您可以查看https://www.geoscreenshot.com,它提供了一个API,可以同时对多个位置进行可视化测试。

另一答案

您可能需要使用VPN来测试应用程序。一些提供商在固定国家/地区提供免费服

如果它是Web应用程序,您可以使用http://www.locabrowser.com测试来自多个国家/地区的不同服务器的页面视图。

另一答案

此外,您可以使用MaxMind用于其单元测试的IP的CSV文件(请参阅https://stackoverflow.com/a/23616234/354709

以上是关于修复了用于测试国家/地区检测的全球IP?的主要内容,如果未能解决你的问题,请参考以下文章

php 从IP检测国家/地区

尝试将 intl-tel-input 库用于国家/地区代码时出错

全球国家地区数据

当我在另一个国家/地区并处于隐身状态时,Google 如何检测国籍/语言?

在Java Servlet中自动为用户选择国家/地区和语言

使用PHP取得用户IP地址的所在地区