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开发入门教程之面向对象
Dec 05 PHP
php strlen mb_strlen计算中英文混排字符串长度
Jul 10 PHP
PHP中使用匿名函数操作数据库的例子
Nov 17 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
利用“多说”制作留言板、评论系统
Jul 14 PHP
php二维码生成
Oct 19 PHP
如何使用GDB调试PHP程序
Dec 08 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
简单PHP会话(session)说明介绍
Aug 21 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
PHP实现多图上传和单图上传功能
May 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
php 缩略图实现函数代码
2011/06/23 PHP
使用Sphinx对索引进行搜索
2013/06/25 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
ES6 Symbol在对象中的作用实例分析
2020/06/06 Javascript
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
python实现换位加密算法的示例
2018/10/14 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
Django中多种重定向方法使用详解
2019/07/17 Python
python retrying模块的使用方法详解
2019/09/25 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
销售找工作求职信
2013/12/20 职场文书
实习老师离校感言
2014/02/03 职场文书
六月份红领巾广播稿
2014/02/03 职场文书
给校长的建议书500字
2014/05/15 职场文书
节约用电标语
2014/06/17 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
单位接收函格式
2015/01/30 职场文书
如何写通讯稿
2015/07/22 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书