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的ob_start();控制您的浏览器cache!
Nov 25 PHP
转PHP手册及PHP编程标准
Dec 17 PHP
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
Dec 31 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
php旋转图片90度的方法
Nov 07 PHP
PHP中数组的分组排序实例
Jun 01 PHP
PHP生成不重复随机数的方法汇总
Nov 19 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
基于PHP实现发微博动态代码实例
Dec 11 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
vuejs指令详解
2017/02/07 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
深入学习Python中的装饰器使用
2016/06/20 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
浅谈用VSCode写python的正确姿势
2017/12/16 Python
Python中的Django基本命令实例详解
2018/07/15 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
详解Python 函数参数的拆解
2020/09/02 Python
python中的对数log函数表示及用法
2020/12/09 Python
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
违反课堂纪律检讨书
2014/01/19 职场文书
公司股份合作协议书
2014/12/07 职场文书
经理助理岗位职责
2015/02/02 职场文书
推销搭讪开场白
2015/05/28 职场文书
张丽莉观后感
2015/06/16 职场文书