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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
五款常用mysql slow log分析工具的比较分析
May 22 PHP
PHP无法访问远程mysql的问题分析及解决
May 16 PHP
ThinkPHP的URL重写问题
Jun 22 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
PHP生成plist数据的方法
Jun 16 PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
Yii框架连表查询操作示例
Sep 06 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
Terran魔法科技
2020/03/14 星际争霸
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
JavaScript效率调优经验
2009/06/04 Javascript
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
DeviceOne 让你一见钟情的App快速开发平台
2016/02/17 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
师范生实习个人的自我评价
2013/09/28 职场文书
给老婆的搞笑检讨书
2014/01/12 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
年终总结会主持词
2014/03/25 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
匿名检举信范文
2015/03/02 职场文书
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js