所谓GeoIP,就是经过来访者的IP, 定位他的经纬度,国家/地区,省市,甚至街道等位置信息。这里面的技术不算难题,关键在于有个精准 的数据库。有了准确的数据源就奇货可居赚点小钱,但是发扬合做精神,集体贡献众人享用是咱们追求的。php
首先咱们须要数据信息,因此先获取一个免费的数据库://sjolzy.cn/php/GeoIP/bak/GeoIP.dat.gz ,接着解压获得:GeoIP.dat, 而后就是对数据文件的按需操做,这边范例使用的是PHP。数据库
方法一:函数
下载 GeoIP 的 PHP 文件geoip.inc,保存为 geoip.inc.php测试
//sjolzy.cn/php/GeoIP/bak/geoip.incspa
php使用代码.net
include("geoip.inc.php");
// 打开数据文件
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
// 获取国家代码
$country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
echo "Your country code is: $country_code ";
// 获取国家名称
$country_name = geoip_country_name_by_addr($gi, $_SERVER['REMOTE_ADDR']);
echo "Your country name is: $country_name ";
// 关闭文件
geoip_close($gi);
注:在本地测试的话因 为$_SERVER['REMOTE_ADDR']和$_SERVER['REMOTE_ADDR']多是127.0.0.1,所 以输出的内容为空。能够本身带入IP测试。code
方法二:ip
把 GeoIP 安装成 PHP 扩展
yum install GeoIP GeoIP-data GeoIP-develget
下载 GeoIP 数据库
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz
mv GeoLiteCity.dat /var/lib/GeoIP/GeoIPCity.datit
下载 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 就好了
如今,你能够使用 php 手册里的 GeoIP 部份函数了
http://cn.php.net/manual/en/book.geoip.php
补充
根据IP肯定用户国家: