【问题标题】: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

标签: php ip-geolocation


【解决方案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 地址设置语言是一件很糟糕的事情。如果我在墨西哥旅行并使用要求英语的浏览器加载您的页面,您不应该仅仅因为我在墨西哥就向我发送西班牙语。

【讨论】:

    猜你喜欢
    • 2012-01-24
    • 2010-10-09
    • 2011-02-05
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2020-05-20
    • 2015-05-19
    • 2011-07-16
    相关资源
    最近更新 更多