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 相关文章推荐
第二节 对象模型 [2]
Oct 09 PHP
Phpbean路由转发的php代码
Jan 10 PHP
php数据库抽象层 PDO
May 07 PHP
深入解析php之apc
May 15 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
Apr 01 PHP
YII中assets的使用示例
Jul 31 PHP
详解PHP数组赋值方法
Nov 07 PHP
PHP实现批量上传单个文件
Dec 29 PHP
PHP邮件群发机实现代码
Feb 16 PHP
laravel 事件/监听器实例代码
Apr 12 PHP
thinkphp 框架数据库切换实现方法分析
May 18 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 万年历实现代码
2012/10/18 PHP
php获取远程文件内容的函数
2015/11/02 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
2018/09/18 PHP
php适配器模式简单应用示例
2019/10/23 PHP
ie 处理 gif动画 的onload 事件的一个 bug
2007/04/12 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
js手机号批量滚动抽奖实现代码
2020/04/17 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
python list转dict示例分享
2014/01/28 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
详解Python设计模式之策略模式
2020/06/15 Python
关于python的缩进规则的知识点详解
2020/06/22 Python
德国网上宠物店:Zoobio
2018/05/23 全球购物
教师实习期自我鉴定
2013/10/06 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
节能环保口号
2014/06/12 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
交通事故代理词范文
2015/05/23 职场文书