使用MaxMind 根據IP位址對訪問者定位

2022-10-04 08:33:07 字數 1634 閱讀 1399

程式設計客棧; 有時你需要知道你的站點訪問者來自哪個國家——比如如果你正打算執行針對地理區域的廣告計畫。本文將對此方法進行介紹。

有時你需要知道你的站點訪問者來自哪個國家——比如如果你正打算執行針對地理區域的廣告計畫。這正是象maxmind's geoip一類的工具大顯身手的地方——它可以讓你從訪問者的ip位址輕鬆獲取其確切的地理位置資訊。

maxmind提供了商業資料庫和免費資料庫。前者更為精確,精度可以達使用者所在城市資訊一級,而後者則只能確定國家和地區。在本文中,我們將演示免費版的使用方法。如果你需要更多詳細資訊,比如遠端客戶的城市以及國家資訊,你需要從maxmind:程式設計客棧d.com購買更詳細的資料庫。

起步要使用此軟體,你必須首先**geoip免費國家資訊檔案: 並將其存放於web伺服器的某個目錄中。然後你需要選擇資料庫檔案所使用的語言api。為簡化整個過程,我們將使用純粹的php版本以避免其他額外的配置或設定apache元件。請記住在安裝軟體到web站點前閱讀軟體許可證條款:d.com/download/geoip/database/license.txt以確保你同意這些條款。

**列表a

<?php

// 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, **aiwww.cppcns.comlable from --";

列表a中的**顯示了使用模組(geoip.inc)以訪問geoip免費國家資訊資料庫(geoip.dat)的基本方法。示例假設php include和國家家資訊資料庫檔案都在與php檔案本身相同的目錄中。如果示例與你的安裝不同,則需要根據需要改變路徑。

示例**相當明了,在引入geoip 函式庫後,第一步即使用geoip_open()函式開啟geoip資料庫檔案。此函式接收兩個引數:資料庫檔案路徑和資料庫型別。

我們然後使用由呼叫geoip_open()返回的控制代碼,由此根據所給的ip位址以獲取兩字母的國家**及直觀的國家名稱。其中還要分別借助函式geoip_country_code_by_addr()和geoip_country_code_by_name()。二者都接收兩個引數:由geoip_open()返回的控制代碼以及需要解析的ip位址。

一旦獲得所需資訊,我們通過呼叫geoip_close()關閉資料庫檔案。

所做的就是這麼簡單。

本文位址:

根據網域名稱獲取ip位址

1如何查詢 網域名稱對應的ip位址 在電腦左下角搜尋cmd 在命令提示符中輸入 ping www.pm25.in 在電腦左下角搜尋執行,輸入cmd 在命令提示符中輸入 ping www.pm25.in 得到ip 106.187.49.54 2如何檢查獲取的ip是否正確?c windows syste...

perl根據ip位址獲取mac位址

有時候需要根據一台主機的ip位址獲取其mac位址,這是可以實現的,但這個ip位址必須是同乙個乙太網內的ip位址。在perl的模組中net arp可以實現這個功能。但是它的arp lookup函式只能從本機的arp快取表中取 被查詢ip 的mac,如果恰恰有,能取到,沒問題。但是如果arp快取沒有 被...

iOS 根據網域名稱獲取ip位址

包含標頭檔案 include includeobjective c 相容c,所以可以使用c的庫函式 nsstring getipaddressbyhostname nsstring strhostname catch n ception e struct in addr ip addr memcpy...