>  기사  >  백엔드 개발  >  PHP 애플리케이션 GeoIP 라이브러리 예제 튜토리얼

PHP 애플리케이션 GeoIP 라이브러리 예제 튜토리얼

WBOY
WBOY원래의
2016-07-25 09:12:01860검색

php应用GeoIP库实例教程

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

一、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库:

  1. extension=php_geoip.dll
复制代码

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

  1. [geoip]
  2. geoip.custom_directory = "D:php5.3geo"
复制代码

测试代码 注意geoip.dll中使用的 GeoIPCity.dat 即 GeoLiteCity.dat,使用时注意看提示。

  1. echo geoip_country_name_by_name( "8.8.8.8" ) . "n";
  2. print_r( geoip_record_by_name( "8.8.8.8" ) );
  3. echo geoip_country_name_by_name( "61.139.2.69" ). "n";
  4. 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” 即可。

1,详细到国家

  1. include("geoip.inc");
  2. $gi = geoip_open( "./GeoIP.dat", GEOIP_STANDARD );
  3. echo geoip_country_code_by_addr($gi, "8.8.8.8") . "t" . geoip_country_name_by_addr($gi, "8.8.8.8") . "n";
  4. echo geoip_country_code_by_addr($gi, "61.139.2.69") . "t" . geoip_country_name_by_addr($gi, "61.139.2.69") . "n";
  5. geoip_close($gi);
复制代码

2,详细到国家城市

  1. include("geoipcity.inc");
  2. include("geoipregionvars.php");
  3. $gi = geoip_open("./GeoLiteCity.dat",GEOIP_STANDARD);
  4. $record = geoip_record_by_addr($gi,"8.8.8.8");
  5. print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "n";
  6. print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "n";
  7. print $record->city . "n";
  8. print $record->postal_code . "n";
  9. print $record->latitude . "n";
  10. print $record->longitude . "n";
  11. print $record->metro_code . "n";
  12. print $record->area_code . "n";
  13. print $record->continent_code . "n";
  14. print "n-----n";
  15. $record = geoip_record_by_addr($gi,"61.139.2.69");
  16. print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "n";
  17. print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "n";
  18. print $record->city . "n";
  19. print $record->postal_code . "n";
  20. print $record->latitude . "n";
  21. print $record->longitude . "n";
  22. print $record->metro_code . "n";
  23. print $record->area_code . "n";
  24. print $record->continent_code . "n";
  25. geoip_close($gi);
复制代码

在使用以上代码时,可以根据开发环境与具体情况决定用哪种。



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.