Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将IP地址转换为国家/地区?_Php - Fatal编程技术网

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

Php 如何将IP地址转换为国家/地区?,php,Php,我正在创建一个像nytime.com这样的新闻网站,但它是多国家的(不同国家的不同新闻和语言) 所以我需要将IP地址转换为国家,然后将用户重定向到相应的子域。 例如,如果一个西班牙用户转到mysite.com,他将被重定向到es.mysite.com 如果需要,您可以向我推荐其他解决方案,但请记住,它必须针对搜索引擎进行优化。 这是一个很好的免费解决方案 您可以为php地理定位付费,但价格昂贵。您不能直接将IP转换为国家/地区。但是,您可以使用具有针对国家/地区的IP/IP范围的数据库,这是大多

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

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

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

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


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

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

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

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

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

也有类似的数据库和服务,只需谷歌“ip到国家”即可查看


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

没有内置的方法。internet上有一些web服务将提供这种映射。此类数据库“GeoIP数据库”也可供本地使用

但最好是订阅一个更新的web服务,并使用它来获取位置他应该在这里帮助你


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

我个人不喜欢基于我所在国家(谷歌…)的不同网站,所以我只使用$_服务器[“HTTP\u ACCEPT\u language”]进行语言检测,只需更改语言设置,不提供不同的内容。这不仅是语言问题,也是内容问题(不同的国家有不同的内容)。所以在美国的一个意大利用户会看到第一条美国新闻(然后他可以在以后更改国家新闻)。我知道,这就是为什么我刚刚发表评论的原因……谷歌API已经移动了。你是指什么?