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 相关文章推荐
joomla jce editor 解决上传中文名文件失败问题
Jun 09 PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 PHP
php实现按文件名搜索文件的远程文件查找器
May 10 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
php从文件夹随机读取文件的方法
Jun 01 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
Jun 28 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
Oct 28 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
PHP从尾到头打印链表实例讲解
Sep 27 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
Oct 18 PHP
PHP7创建销毁session的实例方法
Feb 03 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通过COM使用ADODB的简单例子
2006/12/31 PHP
php xfocus防注入资料
2008/04/27 PHP
PHP strtr() 函数使用说明
2008/11/21 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
事件模型在各浏览器中存在差异
2010/10/20 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
理解JS绑定事件
2016/01/19 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
js获取元素的标签名实现方法
2016/10/08 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
jsTree使用记录实例
2016/12/01 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
Django在Win7下的安装及创建项目hello word简明教程
2014/07/14 Python
在Django的视图中使用form对象的方法
2015/07/18 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
Python 下载及安装详细步骤
2019/11/04 Python
python判断正负数方式
2020/06/03 Python
python如何实时获取tcpdump输出
2020/09/16 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
厂办主管岗位职责范本
2014/02/28 职场文书
家长会主持词开场白
2015/05/29 职场文书
总经理聘用协议书
2015/09/21 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书
Go语言grpc和protobuf
2022/04/13 Golang