有時你需要知道你的網站訪問者來自哪個國家——比如如果你正打算執行針對地理地區的廣告計劃。本文將對此方法進行介紹。
有時你需要知道你的網站訪問者來自哪個國家——比如如果你正打算執行針對地理地區的廣告計劃。這正是象MaxMind's GeoIP一類的工具大顯身手的地方——它可以讓你從訪問者的IP地址輕鬆擷取其確切的地理位置資訊。
MaxMind提供了商務資料庫和免費資料庫。前者更為精確,精度可以達使用者所在城市資訊一級,而後者則只能確定國家和地區。在本文中,我們將示範免費版的使用方法。如果你需要更多詳細資料,比如遠程客戶的城市以及國家資訊,你需要從MaxMind:http://www.maxmind.com購買更詳細的資料庫。
起步
要使用此軟體,你必須首先下載GeoIP免費國家資訊檔:http://www.maxmind.com/app/geoip_country 並將其存放於Web伺服器的某個目錄中。然後你需要選擇資料庫檔案所使用的語言API。為簡化整個過程,我們將使用純粹的PHP版本以避免其他額外的配置或設定Apache組件。請記住在安裝軟體到Web網站前閱讀軟體許可證條款:http://www.maxmind.com/download/geoip/database/LICENSE.txt以確保你同意這些條款。
代碼清單A
// include functions
include("geoip.inc");
// read GeoIP database
$handle = geoip_open("GeoIP.dat", GEOIP_STANDARD);
// map IP to country
echo "IP address 62.149.130.132 located in " . geoip_country_name_by_addr($handle, "62.149.130.132") . " (country code " . geoip_country_code_by_addr($handle, "62.149.130.132") . ")";
// close database handler
// www.knowsky.com
geoip_close($handle);
// print compulsory license notice
echo "
-- This product includes GeoIP data created by MaxMind, available from http://maxmind.com/ --";
?>
列表A中的代碼顯示了使用模組(geoip.inc)以訪問GeoIP免費國家資訊資料庫(GeoIP.dat)的基本方法。樣本假設PHP include和國家家資訊資料庫檔案都在與PHP檔案本身相同的目錄中。如果樣本與你的安裝不同,則需要根據需要改變路徑。
範例程式碼相當明了,在引入GeoIP PHP函數庫後,第一步即使用geoip_open()函數開啟GeoIP資料庫檔案。此函數接收兩個參數:資料庫檔案路徑和資料庫類型。
我們然後使用由調用geoip_open()返回的控制代碼,由此根據所給的IP地址以擷取兩字母的國家代碼及直觀的國家名稱。其中還要分別藉助函數geoip_country_code_by_addr()和geoip_country_code_by_name()。二者都接收兩個參數:由geoip_open()返回的控制代碼以及需要解析的IP地址。
一旦獲得所需資訊,我們通過調用geoip_close()關閉資料庫檔案。
所做的就是這麼簡單。
http://www.bkjia.com/PHPjc/314451.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/314451.htmlTechArticle有時你需要知道你的網站訪問者來自哪個國家——比如如果你正打算執行針對地理地區的廣告計劃。本文將對此方法進行介紹。 有時你需要...