【问题标题】:How to get user region/country information in web-applicaiton?如何在 Web 应用程序中获取用户地区/国家信息?
【发布时间】:2010-02-03 04:25:10
【问题描述】:

我的主要目的是向不同国家(语言)的人展示不同的页面。我认为应该是基于用户所在的地区/国家,我猜可以从ip地址中获取?

示例: *对于 EN 国家的人,他们会看到这个。 www.example.com

*对于日本人,他们会派人到这里。 www.example.com/jp

我也看到有人说要实现这些目的,最好的方法是基于web-browser语言,可以从http header中获取。我不知道哪个更好,常见的方式是什么,为什么..?

感谢您的建议!

我正在使用 Flex 和 Java。

【问题讨论】:

    标签: web-applications geolocation country


    【解决方案1】:

    Zolo,您可以使用 maxmind 的 geoip 数据库之类的工具从 IP 地址轻松找到地区/国家/省,但它有一些缺点:

    • VPN 和缓存可能会产生错误值
    • 用户不能轻易覆盖它。

    通常首选浏览器的 Accept: 标头,因为在美国讲西班牙语的人可以将他们的语言设置设置为获取“es”而不是“en”,即使他们的 IP 会获取“en”。

    当我过去不得不这样做时,我最终在语言选择逻辑中得到了一个有序的偏好列表,每个级别都会覆盖后续级别(如果存在):

    1. 通过在网站上滑动标志图标来表达用户偏好,存储在会话或 cookie 中
    2. 域的 TLD,其中 .com 表示任何内容(例如:mycompany.jp 为您提供日本网站,但 mycomany.com 是“无投票权”并进入下一个级别
    3. 接受标头中的浏览器语言设置
    4. GeoIP 最佳猜测
    5. 回退到英语

    目标当然是根据最准确反映用户偏好的事物进行选择。

    【讨论】:

    • Ry4an,感谢您的回答。我认为您的有序偏好列表是实现我的目标的最佳方式。我仍然是一个充满想法的初学者,缺乏技术......你的回答让我知道了可能性。非常感谢!
    【解决方案2】:

    IP2Location 提供了几种不同的方法来获取此信息(它们具有进行 IP 地址查找所需的数据)。这包括每年 49 美元的网络服务,或者您可以以相同的价格直接从他们那里购买数据。

    【讨论】:

    • 我想我会先尝试一些免费的 IP Geolocaiton 服务。无论如何,谢谢。
    【解决方案3】:

    确定网络应用程序用户选择的语言是...

    棘手的事情!

    请参阅此related SO Questionthis one

    另一个有用的提示是使用关键字GeoLocation,尽管找到位置和选择的语言是两个相关但截然不同的问题。强>
    例如,如果地理位置表明日内瓦市中心,则法语可能是首选语言,但德语、英语和其他几种语言几乎同样可能。

    我从前面提到的 SO 问题中获得了以下 URL:

    免费 IP 地理定位服务

    商业 IP 地理定位服务

    对于语言识别(而不是位置),使用 HTTP 标头的“accept-language 值更方便且通常更准确,但这也可以误导。尽管有人可能安装了日文版浏览器,但他/她可能更喜欢用英文阅读...

    无论您为用户提供什么语言,默认情况下,请确保允许他们轻松切换到网站的另一个版本(如果可能,记住这个选择,以便他们返回您的网站)

    【讨论】:

    • 感谢您的回答。您发布的链接真的很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2015-08-11
    相关资源
    最近更新 更多