2010-09-20 50 views
2

斐伊川,直接用戶的網頁,根據他們的城市

我們希望我們的用戶重定向到對應於基於用戶IP地址的用戶城市(地點我們的網頁之一,並使用一些IP位置數據庫)

我的問題是,如何讓它工作得很快?例如在網站gropoun中,每當用戶訪問時,它立即將用戶帶到其城市頁面。

謝謝。

編輯:我們正在使用PHP

+0

你在用什麼? PHP? – Evert 2010-09-20 15:04:39

回答

2

做什麼?如果客戶端(即使用JavaScript),您可以使用許多geoip服務之一。其中特別是雅虎的YGL

此外,你可以做到這一點的服務器很少使用語言或框架。您可以向第三方geoip提供商進行API或服務調用,或者您可以將數據加載到數據庫中並自行查找。

您還需要爲 「默認」 的區域或郵政編碼如不能確定每個IP地址。例如,我目前工作的一個Web應用程序擁有95%的美國受衆,因此我們默認爲該國家的地理中心爲66952.

+0

不錯的工作克里斯,擴大你的答案,使用服務器端可能更快,因爲這意味着你可以直接引導用戶。而不必等待客戶端加載然後重定向。不過,我認爲你更可能找到免費的客戶端版本比服務器端。 – 2010-09-20 15:07:18

1

您應該確定從HttpRequest的用戶IP後使用某種類型的數據庫,例如,你想這樣做,服務器或客戶端geoip

1

緩存,緩存,緩存所有內容。在您的IP表中緩存查找,緩存單個用戶在會話或Cookie中的結果,緩存頁面呈現的本地化信息部分(或至少查詢密集型部分)。

還有更多可以提供的細節,但這一切都取決於你的瓶頸。 (畢竟,如果瓶頸在於呈現本地化信息,因爲您的數據庫調用需要幾乎半秒的時間才能運行,那麼在路由器上實現複雜緩存毫無意義。我無法告訴你應用程序中的瓶頸在哪裏。您需要首先對其進行配置 - 然後根據配置文件告訴您的內容進行優化。

1

我已經使用查找服務http://ipinfodb.com/ip_location_api.php .

只要記住IP地址和位置存儲在數據庫中,所以你不要做多餘的查找這樣做了幾個客戶服務器端。我使用時區數據來確定訪問者的地區。

相關問題