【问题标题】:Does PHP's GeoIP class's methods always come true?PHP 的 GeoIP 类的方法总是成真吗?
【发布时间】:2012-02-01 15:53:57
【问题描述】:

我想实现一个基于国家/地区的网页。如果传入请求来自美国,我希望我的脚本将用户重定向到 usa.html;如果是来自阿根廷,那么到 arg.html 等等。但我希望它是准确的。例如,如果用户从法国和德国的边界连接到 Internet(假设他从法国连接),则脚本不能将他重定向到 Germany.html,因为用户的 ISP 位于法国边界。 GeoIP 在这种情况下会给出准确的结果吗?

【问题讨论】:

    标签: php geolocation ip geoip boundary


    【解决方案1】:

    GeoIP 并不准确,但不是你想的那样。 GeoIP 或其他类似服务没有什么神奇之处:它只是一个将 IP 地址范围与国家代码联系起来的数据库。他们不知道用户在哪里。

    【讨论】:

    • 所以 PHP 使用的是静态 IP 地址范围。
    • 对不起,这是一个问题。按照你说的,PHP是用一个预定义的IP地址范围来判断这个ip的归属地,对吗?
    • 不是 PHP。这是 GeoIP 服务的主要资产:他们编译了一个关于 ISP 拥有哪些 IP 地址的数据库,并且他们以出售信息为生(或免费提供不是那么最新的版本)。您只使用 PHP 将访问者的 IP 地址与数据库进行匹配。
    • 我不知道 GeoIP 是一个独立的服务。现在检查一下,谢谢。
    【解决方案2】:

    它永远不会 100% 准确。

    我举个例子。我在笔记本电脑上使用来自 O2 Telefonica Slovakia 的预付费移动互联网。 他们的骨干由 O2 Telefonica Czech 维护在捷克共和国。

    它总是说我的 IP 在捷克共和国,但我不在那儿 ;)。我知道,它是移动互联网,而不是 DSL 或任何宽带,但请注意,分配给某些 ISP 的 IP 块可以共享更多国家,因为它不需要受国家边界的限制。很多 ISP 共享 IP 块,因为 ISP 在更多国家提供相同的服务。

    但是,如果谈论静态 IP,是的,是静态的,应该由 GeoIP 正确报告。这就是 maxmind 每月更新他们的数据库的主要原因。

    【讨论】:

      【解决方案3】:

      这取决于您为 GeoIP 数据库支付的费用。

      【讨论】:

        猜你喜欢
        • 2014-08-02
        • 2021-10-20
        • 1970-01-01
        • 2012-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多