我正在创建一个像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。