- 相關(guān)推薦
php使用GeoIP庫實(shí)例
需要注意的是maxmind是geoip數(shù)據(jù)庫的提供方,就跟隨百分網(wǎng)小編一起去了解下吧,想了解更多相關(guān)信息請持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!同時(shí)也提供了很多語言的sample和api說明文檔。
比如php,和php的geoip庫是有很大區(qū)別的,包含使用方式,接口函數(shù)。
php官方的geoip需要配置php環(huán)境,加載geoip.dll庫,并在php.ini中指定GEOIP庫地址。
maxmind提供一系列 .inc 和 .php 對環(huán)境無依賴,只要支持php,直接require后即可使用。
一、GEOIP數(shù)據(jù)庫
http://dev.maxmind.com/geoip/geolite
細(xì)分到國家:GeoLite Country
細(xì)分到城市:GeoLite City
二、php官方geoip.dll庫
下載dll http://windows.php.net/downloads/pecl/releases/geoip/1.0.8/
修改php.ini,啟用geoip庫:
復(fù)制代碼 代碼如下:extension=php_geoip.dll
追加geoip段,指定數(shù)據(jù)庫位置:
復(fù)制代碼 代碼如下:[geoip]
geoip.custom_directory = "D:php5.3geo"
測試代碼
注意geoip.dll中使用的 GeoIPCity.dat 即 GeoLiteCity.dat,用的時(shí)候注意看提示
復(fù)制代碼 代碼如下:
echo geoip_country_name_by_name( "8.8.8.8" ) . "n";
print_r( geoip_record_by_name( "8.8.8.8" ) );
echo geoip_country_name_by_name( "61.139.2.69" ). "n";
print_r( geoip_record_by_name( "61.139.2.69" ) );
三、MaxMind官方php文件函數(shù)庫
文檔和示例:http://dev.maxmind.com/geoip/downloadable
修改maxmind示例中 sample.php 和 sample_city.php 中 GeoIP.dat/GeoLiteCity.dat 路徑為你自己的路徑
同一目錄用 “./GeoIP.dat” 或 “./GeoLiteCity.dat” 即可。
詳細(xì)到國家
復(fù)制代碼 代碼如下:
include("geoip.inc");
$gi = geoip_open( "./GeoIP.dat", GEOIP_STANDARD );
echo geoip_country_code_by_addr($gi, "8.8.8.8") . "t" . geoip_country_name_by_addr($gi, "8.8.8.8") . "n";
echo geoip_country_code_by_addr($gi, "61.139.2.69") . "t" . geoip_country_name_by_addr($gi, "61.139.2.69") . "n";
geoip_close($gi);
詳細(xì)到國家城市
復(fù)制代碼 代碼如下:
include("geoipcity.inc");
include("geoipregionvars.php");
$gi = geoip_open("./GeoLiteCity.dat",GEOIP_STANDARD);
$record = geoip_record_by_addr($gi,"8.8.8.8");
print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "n";
print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "n";
print $record->city . "n";
print $record->postal_code . "n";
print $record->latitude . "n";
print $record->longitude . "n";
print $record->metro_code . "n";
print $record->area_code . "n";
print $record->continent_code . "n";
print "n-----n";
$record = geoip_record_by_addr($gi,"61.139.2.69");
print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "n";
print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "n";
print $record->city . "n";
print $record->postal_code . "n";
print $record->latitude . "n";
print $record->longitude . "n";
print $record->metro_code . "n";
print $record->area_code . "n";
print $record->continent_code . "n";
geoip_close($gi);
看自己開發(fā)環(huán)境和具體情況決定用哪種</p
【php使用GeoIP庫實(shí)例】相關(guān)文章:
php中使用redis隊(duì)列操作實(shí)例代碼05-16
php查詢mysql的實(shí)例09-09
php簡單偽靜態(tài)實(shí)例09-16
PHP處理密碼的幾種方式實(shí)例09-27
PHP生成器簡單實(shí)例09-07
PHP符合PSR編程規(guī)范的實(shí)例07-31
php生成高清縮略圖實(shí)例08-12