寻找网站访问者地理位置的解决方案

我知道有许多服务提供地理定位工具来解决用户访问的位置。 我正在开发的网站是一个在多个地区运营的电子商务网站。 当访问者访问网站时,它应该计算出来自哪里,并为用户显示相关的货币/语言。

在过去我们使用过maxmind,但我想知道是否有更好的解决方案。 我呼吁具有该领域经验的开发人员分享他们的知识和专业知识,了解可用的内容以及各种解决方案的专业人员和内容。

附加信息:有问题的网站主要运行Java(Spring)和PHP(Kohana)的组合,因此也可以考虑其中任何一个的库。 我们已经有一个解决方案,可以计算出使用哪种货币,前提是我们可以获得访客所在国家/地区的ISO代码。


更新
我想我会对访问这个问题的人留下粗略的解释。

地理定位:我已经使用freegoip来检测用户位置,如本主题所示。
语言:在确定用户使用的语言时,我使用PHP检查用户浏览器中设置的语言: http : //www.php.net/manual/en/function.http-negotiate-language.php

我一直在研究一个需要地理定位的项目,不幸的是我发现大多数服务都在MaxMind数据库上运行 ,最后我使用freegeoip ,免费且到目前为止在我的地区都是精确的。

问候。

在我工作的小型电子商务网站上,我们使用Akamai提供地理位置数据,根据访问者所处的状态提供定制广告和价格。请查看以下内容以获取更多信息: http : //www.akamai.com/ html / technology / products / personalization.html 。

对于语言,它应该来自浏览器。 这比地理定位更有用,更准确。

例如,如果您携带笔记本电脑旅行并使用互联网,那么您可能希望用您所使用的国家/地区的母语查看您所使用语言的内容。

请查看此问题以获取更多信息: 通过PHP检查浏览器的语言?

另一种选择是http://ipinfo.io API(我自己的服务)。 以下是API返回的示例。

$ curl ipinfo.io/8.8.8.8 { "ip": "8.8.8.8", "hostname": "google-public-dns-a.google.com", "loc": "37.385999999999996,-122.0838", "org": "AS15169 Google Inc.", "city": "Mountain View", "region": "CA", "country": "US", "phone": 650 } 

您还可以查询特定字段,例如本示例中的国家/地区:

 $ curl ipinfo.io/8.8.8.8/country US 

有关更多详细信息,请访问http://ipinfo.io/developers 。 它每天最多可免费提出1,000个请求,您可以注册超过该计划的付费计划(请参阅http://ipinfo.io/pricing )

正如我所提到的,我们为这个确切的用例构建了https://ipdata.co

 $ip = '78.8.53.5'; $details = json_decode(file_get_contents("https://api.ipdata.co/{$ip}")); 

这将返回

 { "ip": "78.8.53.5", "city": "G\u0142og\u00f3w", "region": "Lower Silesia", "country_name": "Poland", "country_code": "PL", "continent_name": "Europe", "continent_code": "EU", "latitude": 51.663, "longitude": 16.0757, "asn": "AS12741", "organisation": "Netia SA", "postal": "67-200", "currency": "PLN", "currency_symbol": "z\u0142", "calling_code": "48", "flag": "http://sofzh.miximages.com/java/pl.png", "time_zone": "Europe/Warsaw" } 

这具有许多电子商务相关的数据点,具体而言

  • 货币符号
  • 货币代码
  • 国家国旗图标
  • 国家/地区呼叫代码

货币符号z\u0142是Zloty的ASCII