Heim >Backend-Entwicklung >PHP-Tutorial >php应用GeoIP库实例教程

php应用GeoIP库实例教程

WBOY
WBOYOriginal
2016-07-25 09:12:01870Durchsuche

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.3\geo\"
复制代码

测试代码 注意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);
复制代码

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



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP开发微信支付实例代码 Nächster Artikel:thinkphp_模版操作