当前位置: 首页 > 编程笔记 >

php使用GeoIP库实例

孟凯泽
2023-03-14
本文向大家介绍php使用GeoIP库实例,包括了php使用GeoIP库实例的使用技巧和注意事项,需要的朋友参考一下

需要注意的是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);

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

 类似资料:
  • 问题内容: 因此,在我之前的问题中告诉我可以使用MaxMind提供的数据库来确定位置。 因此,我从他们的站点下载了他们的数据库。它们是文件,并在Excel中打开。 是我获取计算机IP的方法。从那里我做 我的问题是: 如何使用刚刚下载的数据库解析到城市位置? 我对此并不陌生,因此不胜感激。 其中一个文件具有三列。,而我不知道这些做的,但我想映射到另一个文件中的城市和国家的位置。 问题答案: 您是否尝

  • GeoIP Weather 是一个PHP的脚本,用来根据访问者的IP地址获取到所在城市的天气预报数据,数据来自于 weather.com 网站。如下图所示: 在线演示:http://geoipweather.com/

  • Open-GeoIP 是一个简单且高性能的 IP 地址地理信息查询服务 安装运行 二进制直接运行 在 release 中下载最新的 [release] 包,解压后直接运行即可。 注意:release 中内置的数据库文件来自于 ipdb-go 中的 city.free.ipdb,仅供测试使用,不保证数据的准确性。 如应用于生产环境,请获取商用授权,或者注册 maxmind 的账号后,获取免费版的 G

  • 本文向大家介绍PHP SPL标准库之SplFixedArray使用实例,包括了PHP SPL标准库之SplFixedArray使用实例的使用技巧和注意事项,需要的朋友参考一下 SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快。 看看我本机的Benchmark测试: 结果如下: 通常情况下Sp

  • 本文向大家介绍php使用PDO操作MySQL数据库实例,包括了php使用PDO操作MySQL数据库实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php使用PDO操作MySQL数据库的方法。分享给大家供大家参考。具体分析如下: PDO是mysql数据库操作的一个公用类,我们不需要进行自定类就可以直接使用pdo来操作数据库,但是在php默认配置中pdo是未开启所以我们必须先在php.in

  • 本文向大家介绍php使用pdo连接mssql server数据库实例,包括了php使用pdo连接mssql server数据库实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了利用php的pdo来连接微软的mssql server数据库的方法,分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的PHP程序设计有所帮助。