GeoIP数据库是广泛使用的商业IP数据库,GeoIP数据库免费版提供国家代码的信息,也就是说能够精确到IP地址所在地国家,如果你要更精确的IP地址定位,那么你需要购买更高版本。
GeoIP数据库是广泛使用的商业IP数据库,GeoIP数据库免费版提供国家代码的信息,也就是说能够精确到IP地址所在地国家,如果你要更精确的IP地址定位,那么你需要购买更高版本。
这里给出一个GeoIP Lite版本的下载地址和简单应用。
GeoIP 数据库文件下载:
curl -o GeoIP.dat.gz \ http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz gunzip GeoIP.dat.gz
GeoIP类文件下载:
接着下载 GeoIP 的 PHP 文件,保存为 geoip.inc
curl -o geoip.inc http://geolite.maxmind.com/download/geoip/api/php/geoip.incGeoIP的PHP API文件打包下载地址:
http://geolite.maxmind.com/download/geoip/api/php/php-1.11.tar.gz
GeoIP查询PHP脚本:
下面的代码能够给出访问者IP的国家代码与国家名称
<?php
//计时开始
function utime() {
$time = explode( " ", microtime() );
$usec = (double)$time[0];
$sec = (double)$time[1];
return $usec + $sec;
}
$startTimes = utime();
include("geoip.inc");
// open the geoip database
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
// 获取国家代码
$country_code = geoip_country_code_by_addr($gi, $_SERVER[‘REMOTE_ADDR’]);
echo "Your country code is: <strong>$country_code</strong> <br />";
// 获取国家名称
$country_name = geoip_country_name_by_addr($gi, $_SERVER[‘REMOTE_ADDR’]);
echo "Your country name is: <strong>$country_name</strong> <br />";
// close the database
geoip_close($gi);
//运行结束时间
$endTimes = utime();
$runTimes = sprintf( ‘%0.4f’, ( $endTimes – $startTimes ) );
echo "Processed in " . $runTimes . "second.";
?>
GeoIP查询实现
- http://iplocation.truevue.org/