php GeoIP的使用教程


Posted in PHP onMarch 09, 2011

GeoIP介绍:
什么是GepIP ?
所谓GeoIP,就是通过来访者的IP, 定位他的经纬度,国家/地区,省市,甚至街道等位置信息。这里面的技术不算难题,关键在于有个精准 的数据库。有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡献众人享用是我们追求的。
GeoIP如何使用?
首先我们需要数据信息,所以先获取一个免费的数据库:GeoIP.dat.gz ,接着解压得到:GeoIP.dat, 然后就是对数据文件的按需操作,这边范例使用的是PHP。
GeoIP + PHP的使用
方法一:
下载 GeoIP 的 PHP 文件geoip.inc。打包下载

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测试

方法二:
把 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 就行了
现在,你可以使用 php 手册里的 GeoIP 部份函数了

PHP 相关文章推荐
php创建多级目录代码
Jun 05 PHP
js下函数般调用正则的方法附代码
Jun 22 PHP
php session处理的定制
Mar 16 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
解析zend studio中直接导入svn中的项目的方法步骤
Jun 21 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
php递归法读取目录及文件的方法
Jan 30 PHP
php中mysql连接方式PDO使用详解
Feb 25 PHP
PHP数组去重的更快实现方式分析
May 09 PHP
PHP strripos函数用法总结
Feb 11 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 #PHP
通过JavaScript或PHP检测Android设备的代码
Mar 09 #PHP
PHP中uploaded_files函数使用方法详解
Mar 09 #PHP
PHP $_FILES函数详解
Mar 09 #PHP
PHP中for与foreach的区别分析
Mar 09 #PHP
php模板中出现空行解决方法
Mar 08 #PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 #PHP
You might like
各种战术和打法的原创者
2020/03/04 星际争霸
德劲1103二次变频版的打磨
2021/03/02 无线电
PHP4实际应用经验篇(7)
2006/10/09 PHP
FCKeditor的安装(PHP)
2007/01/13 PHP
浅析PHP水印技术
2007/02/14 PHP
php动态生成函数示例
2014/03/21 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
javascript学习网址备忘
2007/05/29 Javascript
JavaScript XML操作 封装类
2009/07/01 Javascript
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
详解Vue项目中实现锚点定位
2019/04/24 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
介绍一下gcc特性
2012/01/20 面试题
银行员工职业规划范文
2014/01/21 职场文书
董事长秘书职责
2014/01/31 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
《穷人》教学反思
2014/04/08 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python