如何用 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 檔案內容如下.
<?phpinclude('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. 使用國家代號
在主題中呼叫**, 例子如下.
<?phpglobal
$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開發中,無論...