如何将IP地址转换为国家/地区


How to convert IP address to country?

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

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

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

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

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

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

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

http://html5demos.com/geo/

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

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

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

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

有类似的数据库和服务,只是谷歌"ip到国家"

查看

  • Maxmind和
  • IPinfoDB.com

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

没有内置的方法。互联网上有网络服务可以提供这样的地图。此类数据库"GeoIP数据库"也可供本地使用。

但最好订阅一个更新的网络服务,并使用它来获取位置。谷歌的客户定位API应该在这里帮助你。

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