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 相关文章推荐
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 PHP
php输入数据统一类实例
Feb 23 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
Jul 23 PHP
php使用高斯算法实现图片的模糊处理功能示例
Nov 11 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
Laravel find in set排序实例
Oct 09 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
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
jQuery 获取对象 定位子对象
2010/05/31 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
JQuery复制DOM节点的方法
2015/06/11 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
Python实现计算最小编辑距离
2016/03/17 Python
Python有序字典简单实现方法示例
2017/09/28 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
python类的实例化问题解决
2019/08/31 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
Django实现随机图形验证码的示例
2020/10/15 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
用友笔试题目
2016/10/25 面试题
Internet体系结构
2014/12/21 面试题
巧克力蛋糕店创业计划书
2014/01/14 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
一帮一活动总结
2014/05/08 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
工会积极分子个人总结
2015/03/03 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
大客户经理岗位职责
2015/04/09 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python