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执行速度全攻略(上)
Oct 09 PHP
关于php curl获取301或302转向的网址问题的解决方法
Jun 02 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
PHP中的日期加减方法示例
Aug 21 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
PHP数组操作类实例
Jul 11 PHP
PHP新建类问题分析及解决思路
Nov 19 PHP
详解使用php调用微信接口上传永久素材
Apr 11 PHP
Symfony2针对输入时间进行查询的方法分析
Jun 28 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
php pdo连接数据库操作示例
Nov 18 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+ACCESS 文章管理程序代码
2010/06/21 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
2014/08/19 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
javaScript嗅探执行神器-sniffer.js
2017/02/14 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
python使用Matplotlib画饼图
2018/09/25 Python
在python中实现将一张图片剪切成四份的方法
2018/12/05 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
大学生物业管理求职信
2013/10/24 职场文书
高中生自我鉴定范文
2013/10/30 职场文书
学徒工职责
2014/03/06 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
开展读书活动总结
2014/06/30 职场文书
让子弹飞观后感
2015/06/11 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python