【问题标题】:How to convert IP address to country? [duplicate]如何将IP地址转换为国家? [复制]
【发布时间】:2012-07-09 04:07:31
【问题描述】:

我正在创建一个像 nytime.com 这样的新闻网站,但涉及多个国家(不同国家/地区的新闻和语言不同)。

所以我需要将 IP 地址转换为国家/地区,然后将用户重定向到相应的子域。 例如,如果西班牙用户访问 mysite.com,他将被重定向到 es.mysite.com。

如果您愿意,您可以向我提出其他解决方案,但请记住,它必须针对搜索引擎进行优化。

【问题讨论】:

  • 就我个人而言,当我根据我所在的国家/地区(谷歌...)获得不同的网站时,我讨厌它,所以我只是使用 $_SERVER["HTTP_ACCEPT_LANGUAGE"] 进行语言检测,然后更改语言设置,并且不提供不同的内容。
  • 这不仅仅是语言问题,也是内容问题(不同国家的内容不同)。因此,美国的意大利用户将首先看到美国新闻(然后他可以稍后更改国家/地区的新闻)。
  • 我知道,这就是我刚刚发表评论的原因......

标签: php


【解决方案1】:

您不能直接将 IP 转换为国家/地区。但是,您可以使用具有针对国家/地区的 IP/IP 范围的数据库,这是大多数网站的做法。

【讨论】:

    【解决方案2】:

    MaxMind 以适用于许多数据库和编程语言的格式或作为 Apache 插件出售这些数据。它并不总是正确的,但它可能尽可能准确。

    http://www.maxmind.com/app/ip-location

    与 JS 方法相比,这种方法的优点是不会提示用户透露他们的位置。

    【讨论】:

      【解决方案3】:

      http://html5demos.com/geo/

      这是一个很好的免费解决方案。

      您可以为 php 地理定位付费,但价格昂贵。

      【讨论】:

        【解决方案4】:

        http://software77.net/geo-ip/

        您可以在右侧边栏中下载数据库

        有类似的数据库和服务,只需谷歌“ip to country”

        【讨论】:

          【解决方案5】:

          看看

          基本上,您需要一个数据库,您可以在其中比较手头的 IP 并找出它的国家/地区。 Maxmind 为您提供自托管的数据库和代码示例,而 IPinfoDB 提供免费的 API 服务。

          【讨论】:

            【解决方案6】:

            没有内置的方法。互联网上有提供此类映射的网络服务。此类数据库“GeoIP 数据库”也可供本地使用。

            但最好订阅更新的网络服务并使用它来获取位置。 Google's Client Location API's 应该可以帮到你。

            一些现代浏览器会向您发送用户位置。你可以用那个。但由于并非所有浏览器都遵循这一点,因此并不可靠。您可以查看 w3.org 提供的Geo Location API。

            【讨论】:

            猜你喜欢
            • 2014-03-19
            • 2013-05-09
            • 1970-01-01
            • 2014-03-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-10-21
            • 1970-01-01
            相关资源
            最近更新 更多