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生成静态页面详解
Nov 19 PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
php将图片保存为不同尺寸图片的图片类实例
Mar 30 PHP
Smarty实现页面静态化(生成HTML)的方法
May 23 PHP
php学习笔记之mb_strstr的基本使用
Feb 03 PHP
php/JS实现的生成随机密码(验证码)功能示例
Jun 06 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
Oct 18 PHP
PHPExcel实现的读取多工作表操作示例
Apr 14 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(视频)Http下载
2006/12/12 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
详解weex默认webpack.config.js改造
2018/01/08 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
vue中的使用token的方法示例
2020/03/10 Javascript
window下eclipse安装python插件教程
2017/04/24 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
使用Scrapy爬取动态数据
2018/10/21 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
银行求职推荐信范文
2013/11/30 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
禁止酒驾标语
2014/06/25 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
工作证明格式范文
2015/06/15 职场文书
MySQL8.0无法启动3534的解决方法
2021/06/03 MySQL
MySQL添加索引特点及优化问题
2022/07/23 MySQL