如何確認訪客所在的國家

2021-09-06 17:49:43 字數 1584 閱讀 9063

在建設**的時候,有時會遇到根據不同國家的訪客顯示不同資訊的需求。尤其是**所用語言的國際化要求,比如對美國的訪客顯示英語,對中國的訪客顯示中文。

有兩種途徑能夠解決此問題。

* 使用中文環境的客戶端(zh-cn)會得到"cn"的結果,而使用英文環境的客戶端(en-us)則會得到"us"。

* 這種方法很明顯會有個問題,判斷的結果依賴訪客的客戶端語言環境而非真實的所在國家地理位置。

通過ip位址取得對應的國家地理位置,可以採用資料**商所提供的資料庫,以一般查詢的方式獲得相應的資訊。不過這些資料庫通常是需要付費的。

當然也有免費的產品,比如maxmind發布的免費資料庫。

需要用到的dll可以由nuget方法取得, pm> install-package maxmind.geoip2  ,安裝完成後專案中會新加maxmind.db以及maxmind.geoip2兩個dll引用。

在呼叫geoip2的api之前,還需要完成一項工作,即取得訪客的ip位址。

最簡單的方式是使用 httpcontext.current.request.userhostaddress ,不過在訪客使用**伺服器的場景下,此方式所獲得的ip位址就是不正確的了。

因此需要變更方法,改用下列的**:

當這一步完成後,就可以進入正題,呼叫geoip2的api以獲得訪客所處的國家。

* 如果無法從資料庫中取得對應資訊,上述方法會丟擲異常,所以在實際開發時有必要加上try/catch語句加以控制。

外掛程式91 根據IP確定使用者所在的國家

根據ip確定使用者所在的國家 外掛程式說明 外掛程式接受乙個ip位址,然後返回該ip位址所在的國家。如果操作失敗,返回false 它需要以下引數 ip 乙個ip位址 this is an executable example with additional code supplied to obta...

如何確認軟體測試結束的呢?

在軟體消亡之前,如果沒有測試的結束點,那麼軟體測試就永無休止,永遠不可能結束。軟體測試的結束點,要依據自己公司具體情況來制定,不能一概而論 個人認為測試結束點由以下幾個條件決定 1.基於 測試階段 的原則 每個軟體的測試一般都要經過單元測試 整合測試 系統測試這幾個階段,我們可以分別對單元測試 整合...

如何確認軟體測試結束的呢?

在軟體消亡之前,如果沒有測試的結束點,那麼軟體測試就永無休止,永遠不可能結束。軟體測試的結束點,要依據自己公司具體情況來制定,不能一概而論 個人認為測試結束點由以下幾個條件決定 1.基於 測試階段 的原則 每個軟體的測試一般都要經過單元測試 整合測試 系統測試這幾個階段,我們可以分別對單元測試 整合...