geoip+php示例:通过ip,获取国家名称和代码
方法一:
下载 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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。