我正在创建一个像 nytime.com 这样的新闻网站,但有多个国家(不同国家的新闻和语言不同)。
所以我需要将 IP 地址转换为国家,然后将用户重定向到适当的子域。例如,如果西班牙用户访问mysite.com,他将被重定向到es.mysite.com。
如果您愿意,您可以向我提出其他解决方案,但请记住它必须针对搜索引擎进行优化。
我正在创建一个像 nytime.com 这样的新闻网站,但有多个国家(不同国家的新闻和语言不同)。
所以我需要将 IP 地址转换为国家,然后将用户重定向到适当的子域。例如,如果西班牙用户访问mysite.com,他将被重定向到es.mysite.com。
如果您愿意,您可以向我提出其他解决方案,但请记住它必须针对搜索引擎进行优化。
您不能直接将 IP 转换为国家/地区。但是,您可以使用具有针对国家/地区的 IP/IP 范围的数据库,这是大多数网站的做法。
MaxMind 以适用于许多数据库和编程语言的格式或作为 Apache 插件出售这些数据。它并不总是正确的,但它可能尽可能准确。
http://www.maxmind.com/app/ip-location
这种方法而不是 JS 方法的优点是不会提示用户透露他们的位置。
查看
基本上,您需要一个数据库,您可以在其中比较手头的 IP 并找出它的国家/地区。Maxmind 为您提供自托管的数据库和代码示例,而 IPinfoDB 提供免费的 API 服务。
没有内置的方法。互联网上有提供此类映射的网络服务。此类数据库“GeoIP 数据库”也可供本地使用。
但最好订阅更新的网络服务并使用它来获取位置。Google 的 Client Location API应该可以帮助您。
一些现代浏览器会向您发送用户位置。你可以用那个。但由于并非所有浏览器都遵循这一点,因此并不可靠。您可以查看w3.org 提供的Geo Location API 。