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

來源:互聯網
上載者:User
文章目錄
  • 在 PHP 通過 IP 區分國家
  • 在 WordPress 中通過 IP 區分國家
  • 總結
在 PHP 通過 IP 區分國家

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

1. 下載資料庫和 PHP 庫檔案

  • 下載 GeoID.dat.gz, 解壓為 GeoIP.dat 檔案.
  • 下載 geoip.inc.

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); ?>
在 WordPress 中通過 IP 區分國家

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.