PHP:我如何通过他/她的 IP 地址确定某人是不是来自美国?

Posted

技术标签:

【中文标题】PHP:我如何通过他/她的 IP 地址确定某人是不是来自美国?【英文标题】:PHP: How do I find out if someone is from the US from his/her IP Address?PHP:我如何通过他/她的 IP 地址确定某人是否来自美国? 【发布时间】:2009-10-15 19:30:03 【问题描述】:

我不想要任何非常复杂的东西。我正在为美国以外的客户工作,我只想进行基本检查,看看是否有人从美国访问他的页面。之后,在确定访问者来自哪里之后,我将默认语言为英语或西班牙语。

谢谢。

【问题讨论】:

如果您想确定默认语言,请根据 Accept-Language 标头而不是人员的位置来确定。 cs.tut.fi/~jkorpela/multi/index-en.htm 仅仅因为我碰巧在西班牙度假,就被引导到西班牙语版本的 Google 非常烦人。我的西班牙语远不如我的母语! 你是对的。我在南美也有同样的问题。所以,你是说有另一种方式来决定语言。凉爽的。我去看看。 o sea que no vas a tener suerte? Espero que no!我的客户需要! :D 【参考方案1】:

为什么不将internationalization 与 php 一起使用?它基于用户浏览器设置工作。我不希望仅仅因为我在不同的国家而看到不同的语言 ;-) 当我在巴黎短暂停留时,当 Google 开始以法语显示搜索结果和选项时,我遇到了困难。

【讨论】:

是的,这是正确的做法。由于您只是在翻译您的内容,而不是根据用户的语言环境更改实际内容。谷歌的情况有点不同,因为他们实际上做本地化和翻译,即你在巴黎的搜索结果将包含不同的网站,以及法语。我认为他们应该在这方面尝试并变得更聪明,但是出于兼容性原因或仅仅因为他们无法更改它,许多人将他们的操作系统和浏览器设置为 en-US - 无论他们的语言/区域设置偏好如何。 是的,我为此找到了一个网站:thefutureoftheweb.com/blog/use-accept-language-header 这有点像 David Dorward 所说的。【参考方案2】:

您可以使用ip2location 之类的服务,或者您可以使用这个更简单的 PHP technique 从访问者那里获取区域信息。

【讨论】:

我看过了。我不知道。我不喜欢使用大量外部网站和服务,但是,其他一些人可能会。【参考方案3】:

MaxMind 赠送了他们的IP address location database 的免费副本。对于特定国家/地区而言,它足够准确。我建议使用二进制版本,因为它比在 mysql 之类的东西中加载要快得多。除了更复杂的方法之外,它们还提供PHP API。

但正如其他人所说,IP 地址设置语言是一件很糟糕的事情。如果我在墨西哥旅行并使用要求英语的浏览器加载您的页面,您不应该仅仅因为我在墨西哥就向我发送西班牙语。

【讨论】:

以上是关于PHP:我如何通过他/她的 IP 地址确定某人是不是来自美国?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中获取客户端 IP 地址

使用 PHP 从 IP 地址获取城市/状态

Linux 如何通过命令仅获取IP地址

如何检查一个IP地址是不是在PHP中的两个IP范围内?

在 Python 中,如何确定 IP 地址是不是是私有的?

php获取了ip地址,用php怎么获取ip的地理位置?请大虾赐教!