2012-07-06 151 views
2

我知道有很多服务提供地理位置工具来确定用户访问的地方。我正在处理的网站是一个运行在多地区的电子商务网站。当访问者访问该网站时,应该确定他们来自哪里,并向用户显示相关货币/语言。寻找网站访问者的地理位置的解决方案

在过去,我们已经使用maxmind,但我想知道是否有更好的解决方案。我打电话给有这方面经验的开发人员,分享他们的知识和专业知识,了解可用的内容以及专业和客户的各种解决方案。

附加信息:有问题的网站主要运行在Java(Spring)和PHP(Kohana)的组合上,因此也可以考虑使用这两种库。我们已经有了一个解决方案来确定使用哪种货币,只要我们能够获得访问者所在国家的ISO代码。


更新
以为我会离开成果的人谁访问了这个问题的一个粗略的解释。

地理位置:我已经使用freegoip检测用户位置,正如本主题中所建议的。
语言:工作时外出使用,因为我已经使用PHP来检查用户的浏览器的语言设置用户的语言:http://www.php.net/manual/en/function.http-negotiate-language.php

+0

嗨ASCII,我们建立ipdata.co此确切的用例,我们的API提供货币符号,货币代码,用户时区,托管国家旗帜图标以及位置数据。有关PHP示例,请参阅下面的https://stackoverflow.com/a/47141807/3176550。 – Jonathan 2017-11-06 16:47:34

回答

0

我一直在研究一个需要地理位置的项目,不幸的是我发现大多数服务都在MaxMind数据库上工作,最后我用freegeoip,这是免费的,至今在我所在的地区是精确的。

问候。

0

对于语言,它应该通过浏览器来完成。这比地理位置更有用,更准确。

例如,如果你与你的笔记本电脑旅行时,您所使用的互联网,你可能想看看在你的语言比你在国内的本地语言的东西。

看这个问题欲了解更多信息:Checking browser's language by PHP?

+0

这是一个很好的观点。在实施检测位置时,我打算通知用户检测结果,并给他们更改语言和货币的选项。类似于Etsy在第一次访问时所做的。 – diggersworld 2012-07-06 19:02:38

0

另一种选择是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。它是免费的,每天多达1000个请求,您可以申请超出付费计划(见http://ipinfo.io/pricing

0

正如我所说,我们建立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": "https://ipdata.co/flags/pl.png", 
    "time_zone": "Europe/Warsaw" 
} 

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

  • 货币符号
  • 货币代码
  • 国家国旗图标
  • 国码

货币符号z\u0142是兹罗提