2012-07-06 154 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是茲羅提