php使用GeoIP库实例


Posted in PHP onJune 27, 2014

需要注意的是maxmind是geoip数据库的提供方,
同时也提供了很多语言的sample和api说明文档。
比如php,和php的geoip库是有很大区别的,包含使用方式,接口函数。
php官方的geoip需要配置php环境,加载geoip.dll库,并在php.ini中指定GEOIP库地址。
maxmind提供一系列 .inc 和 .php 对环境无依赖,只要支持php,直接require后即可使用。

一、GEOIP数据库

http://dev.maxmind.com/geoip/geolite
细分到国家:GeoLite Country
细分到城市:GeoLite City

二、php官方geoip.dll库

下载dll http://windows.php.net/downloads/pecl/releases/geoip/1.0.8/
修改php.ini,启用geoip库:

extension=php_geoip.dll

追加geoip段,指定数据库位置:
[geoip]

geoip.custom_directory = "D:\php5.3\geo\"

测试代码

注意geoip.dll中使用的 GeoIPCity.dat 即 GeoLiteCity.dat,用的时候注意看提示

echo geoip_country_name_by_name( "8.8.8.8" ) . "\n";

print_r( geoip_record_by_name( "8.8.8.8" ) );

echo geoip_country_name_by_name( "61.139.2.69" ). "\n";

print_r( geoip_record_by_name(  "61.139.2.69" ) );

三、MaxMind官方php文件函数库

文档和示例:http://dev.maxmind.com/geoip/downloadable
修改maxmind示例中 sample.php 和 sample_city.php 中 GeoIP.dat/GeoLiteCity.dat 路径为你自己的路径
同一目录用 “./GeoIP.dat” 或 “./GeoLiteCity.dat” 即可。
详细到国家

include("geoip.inc");

$gi = geoip_open( "./GeoIP.dat", GEOIP_STANDARD );

echo geoip_country_code_by_addr($gi, "8.8.8.8") . "\t" . geoip_country_name_by_addr($gi, "8.8.8.8") . "\n";

echo geoip_country_code_by_addr($gi, "61.139.2.69") . "\t" . geoip_country_name_by_addr($gi, "61.139.2.69") . "\n";

geoip_close($gi);

详细到国家城市

include("geoipcity.inc");

include("geoipregionvars.php");

$gi = geoip_open("./GeoLiteCity.dat",GEOIP_STANDARD);

 

$record = geoip_record_by_addr($gi,"8.8.8.8");

print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "\n";

print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "\n";

print $record->city . "\n";

print $record->postal_code . "\n";

print $record->latitude . "\n";

print $record->longitude . "\n";

print $record->metro_code . "\n";

print $record->area_code . "\n";

print $record->continent_code . "\n";

 

print "\n-----\n";

$record = geoip_record_by_addr($gi,"61.139.2.69");

print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "\n";

print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "\n";

print $record->city . "\n";

print $record->postal_code . "\n";

print $record->latitude . "\n";

print $record->longitude . "\n";

print $record->metro_code . "\n";

print $record->area_code . "\n";

print $record->continent_code . "\n";

geoip_close($gi);

看自己开发环境和具体情况决定用哪种

PHP 相关文章推荐
php 数组二分法查找函数代码
Feb 16 PHP
服务器web工具 php环境下
Dec 29 PHP
php中CI操作多个数据库的代码
Jul 05 PHP
ThinkPHP3.1的Widget新用法
Jun 19 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
Feb 02 PHP
PHP访问Google Search API的方法
Mar 05 PHP
php简单防盗链实现方法
Jul 29 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
Laravel实现自定义错误输出内容的方法
Oct 10 PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 #PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 #PHP
ThinkPHP模板自定义标签使用方法
Jun 26 #PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 #PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 #PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Jun 26 #PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 #PHP
You might like
PHP的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
利用Python破解斗地主残局详解
2017/06/30 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
python中set()函数简介及实例解析
2018/01/09 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
对Python 内建函数和保留字详解
2018/10/15 Python
Python重新加载模块的实现方法
2018/10/16 Python
django+mysql的使用示例
2018/11/23 Python
基于Python函数和变量名解析
2019/07/19 Python
Python中Unittest框架的具体使用
2019/08/27 Python
python SOCKET编程基础入门
2021/02/27 Python
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
简单而又朴实的个人求职信分享
2013/12/12 职场文书
车间副主任岗位职责
2013/12/24 职场文书
《藏戏》教学反思
2014/02/11 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
《画风》教学反思
2014/04/16 职场文书
民间借贷借条范本
2015/05/25 职场文书
纪检监察立案决定书
2015/06/24 职场文书
小学英语教学随笔
2015/08/14 职场文书
python全面解析接口返回数据
2022/02/12 Python