通過 IP 區分不同國家的使用者

2022-02-19 02:06:58 字數 1835 閱讀 6146

如何用 php 通過 ip 區分國家和地區呢? maxmind.com 提供一套 geoip 的解決方案, 只需要簡單幾步即可在 php 中通過 ip 判斷訪客的國家.

2. 通過 php **獲取國家資訊

以下是一段示範**, 演示如何獲取國家代號和國家名稱.

<?php //

引入 php 庫檔案

include("geoip.inc"); //

開啟本地資料庫, 資料儲存在 geoip 檔案中.

$geodata = geoip_open('geoip.dat',geoip_standard); //

獲取國家 ip

$countrycode = geoip_country_code_by_addr($geodata, $_server['remote_addr']); //

獲取國家名稱

$countryname = geoip_country_name_by_addr($geodata, $_server['remote_addr']); //

關閉本地資料庫

geoip_close($geodata);

?>

既然 php 上使用沒問題, wordpress 肯定也是 okay 的. 看看我是怎麼使用的.

1. 放置資料庫檔案

將 geoip.dat 解壓到 wordpress 根目錄中. (你可以在這個目錄找到 wp-config.php 或者 wp-config-sample.php 檔案)

2. 編寫呼叫介面

在主題目錄中新建資料夾 include, 將 geoip.inc 放置在新建資料夾中. 並在該資料夾新建檔案 geoip.php 檔案內容如下.

<?php

include('geoip.inc');

global

$countrycode;

$geodata = geoip_open('geoip.dat',geoip_standard);

$countrycode = geoip_country_code_by_addr($geodata, $_server['remote_addr']);

geoip_close(

$geodata);

?>

這裡只取國家代號作為判別依據. 並且國家代號是全域性變數, 以避免頁面多處判斷需要反覆訪問 geoip.dat 獲取資訊, 減少程式開銷.

2. 呼叫介面, 獲取國家代號

3. 開啟 header.php 檔案, 在檔案頂部加入**如下.

<?php include('include/geoip.php'); ?>

4. 使用國家代號

在主題中呼叫**, 例子如下.

<?php

global

$countrycode;

if($countrycode == 'cn') else

if($countrycode == 'us') else

?>

通過 ip 判斷訪客**十分精準的, 現在一些外貿**都是通過這個方法向使用者進行展示區分, 比如美國地區的使用者預設看到美國能買到的商品和美國物流資訊. 但不是百分之百的準確, 比如某人常年fq, 那他可能一直看不到本國的資訊. 至於是否需要區分處理, **主要有所考慮.

可能有人會問, 加這麼個東西, 效能如何? 會不會要求強大的伺服器? 我測試過, 正常的伺服器上幾乎不影響頁面載入效能, 可以看看這個部落格的速度. 如果不放心, 自己測一下.

魏聖福 不同國家的智慧型城市戰略 應適合本國實際

2016中國智慧型城市年度論壇 於7月29日在北京舉行。lh u city研究團團長魏聖福出席並演講。魏聖福認為有必要首先了解一下智慧型城市的概念。在城市空間引入環保的技術,再加上資訊通訊的技術,從而使整個城市的領域進行智慧型化,大致這樣的了解。當然這樣乙個定義對於各個國家和各個領域的人員來講不一樣...

Linux中Nginx通過網域名稱區分不同的虛擬主機

類似於找到乙個人,你可以通過身份證號,也可以通過名字。自然是記名字方便。但歸根結底,計算機網路是通過ip連線伺服器獲取訊息的,網域名稱到ip或者ip到網域名稱的轉換,是通過dns伺服器解析網域名稱實現的。dns伺服器儲存的就是網域名稱和ip的對映關係。通常,乙個網域名稱對應乙個ip位址,乙個ip位址...

根據http請求資訊區分訪問使用者的國家 語言資訊

今天要介紹的就是如何識別不同國家,只需要簡單幾步,就能識別出來自不同國家的請求,使你的web應用更有國際範。國家識別主要用到的是http header中的host,accept language,cookie以及請求的url,ip等。下面先溫習下http header的基礎知識。在web開發中,無論...