【问题标题】:Website - blocking view from none specified country locations网站 - 阻止来自未指定国家/地区位置的视图
【发布时间】:2017-08-07 13:16:14
【问题描述】:

我正在寻找尽可能可靠和准确/快速的方法来添加一些 htaccess 代码,以阻止来自我希望允许访问的国家/地区白名单之外的国家/IP 访问网站。我查看了https://www.ip2location.com/free/visitor-blocker,它似乎提供了一个解决方案——对于我想允许访问的 4 个允许的国家——它创建了一个 4.1MB 的 htaccess 文件!当有人试图查看该站点时,这是否意味着访问缓慢?我想使用这样的免费服务意味着数据可能远非全面?

对于只允许来自几个国家/地区的访问者访问网站的好方法,有人有什么建议吗?

【问题讨论】:

    标签: ip


    【解决方案1】:

    听起来你使用的服务基本上是试图暴力破解黑名单。如果你查看 htaccess 文件,我相信你会得到一长串硬编码的 IP 块。

    在我看来,这是处理地理黑名单的糟糕方式。对于您最初的问题 - 没有“最可靠、最准确、最快捷”的方法。这些是单独的类别,您需要优先选择一个。

    为了提高性能,您可以考虑在路由级别/dns 服务器/代理上加入黑名单。就性能而言,这显然不会是最快的方法。存在允许您使用本地数据库将传入 IP 地址与来自黑名单国家的已知 IP 块列表进行比较的 Apache 模块。这样做的主要问题之一是您需要不断更新数据库以接收新的 IP 块。

    在我看来,“最好”的方法是使用服务器端代码在应用层进行简单的重定向。存在几个地理 API,您可以在其中发送 IP 或主机名并返回原产国。一个例子:

    $xml= new SimpleXMLElement(file_get_contents('http://www.freegeoip.net/xml/{IP_or_hostname}'));
    if($xml->CountryCode == "US") {
        header('Location: http://www.google.com');
    }
    

    【讨论】:

    • 感谢您的想法,克里斯。是 - ip2location.com 创建一个 htaccess 文件,按照从它创建的文件复制的以下示例: order deny,allow allow from 2.16.9.0/24 allow from 2.16.18.0/24 allow from 2.16.20.0/ 23 允许来自 2.16.27.0/24 允许来自 2.16.45.0/24 允许来自 2.16.56.0/22 - 我认为这是一个不好的方法?
    • 我假设这不是整个文件,因为你说它是 4mb?
    • 不 - 只有几行 - 正如你所说 - 它有一个定义的 IP 列表,根据它知道在“允许”国家/地区位置允许的 IP。它似乎工作......我很欣赏主要的缺点是列表没有更新,因为它是一个罐头文件 - 但它会是一个缓慢的表现吗?我测试时似乎还可以..?
    • 我认为您不会因此而受到性能方面的影响,但是您如何验证您的代码是否可靠地阻止了来自该国家/地区的请求?
    • 好的,谢谢克里斯。这就是问题所在-IP列表是我依赖的列表,ip2location.com创建的列表在某些方面是准确的...我猜他们每次访问他们的网站时都会建立他们的数据库,因为他们会跟踪所有访问者的IP .您建议的解决方案将使用与不断更新的 IP 数据库的连接,是吗?
    【解决方案2】:

    有两种方法可以阻止 Web 服务器中的访问者。一种是使用防火墙(.htaccess 等),另一种是使用服务器端脚本(PHP 等)。

    如果您担心防火墙选项的性能,那么您可以从http://lite.ip2location.com 下载 IP2Location LITE 数据库并在本地服务器中实施该数据库。对于每个连接,您都会查询访问者的 IP 地址并找到他们的国家/地区。您可以使用 PHP 代码重定向或阻止它们。请在https://www.ip2location.com/tutorials/redirect-web-visitors-by-country-using-php-and-mysql-database中找到完整的步骤

    还有另一个使用远程地理定位 API 的选项。但是,由于网络延迟,我们不建议使用此方法。由于 API 查询,它会降低所有用户体验。

    【讨论】:

    • 谢谢迈克尔 - 我会看看你推荐的这个解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多