您的位置:首页 > 编程语言 > PHP开发

geoip+php演示样例:通过ip,获取国家名称和代码

2017-04-19 14:23 645 查看
GeoIP + PHP的使用

方法一:

下载 GeoIP 的 PHP 文件geoip.inc,保存为 geoip.inc.php
http://sjolzy.cn/php/GeoIP/bak/geoip.inc
php使用代码

<?php
include("geoip.inc.php");
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
$country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
$country_name = geoip_country_name_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);

$jsonEcho = array();
$jsonEcho["error"] = 0;
$jsonEcho["country_code"] = $country_code;
$jsonEcho["country_name"] = $country_name;

function jsonp($object, $callback = 'callback') {
if (!empty($_GET[$callback])) {
header('Content-Type: application/x-javascript');
} else {
header('Content-Type: application/json');
}
return $_GET[$callback].'('.json_encode($object).')';
}

echo jsonp($jsonEcho);

?>


注:在本地測试的话因 为$_SERVER['REMOTE_ADDR']和$_SERVER['REMOTE_ADDR']可能是127.0.0.1,所 以输出的内容为空。能够自己带入IP測试

方法二:

把 GeoIP 安装成 PHP 扩展

yum install GeoIP GeoIP-data GeoIP-devel

下载 GeoIP 数据库

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz

mv GeoLiteCity.dat /var/lib/GeoIP/GeoIPCity.dat

下载 GeoIP 的 PECL 扩展

下载地址 http://pecl.php.net/package/geoip
wget -c http://pecl.php.net/get/geoip-1.0.7.tgz
tar -zxvf geoip-1.0.7.tgz

安 装 GeoIP 的 PECL 扩展

cd geoip-1.0.7

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-geoip

make

make install

在 php.ini 里加上

extension=geoip.so

接着重新启动一下 php 即可了(nginx+php的情况,而apache+php就不用重新启动了)

如今。你能够使用 php 手冊里的 GeoIP 部份函数了
http://cn.php.net/manual/en/book.geoip.php
參考:http://blog.csdn.net/prince2270/article/details/4592753
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: