Home >Backend Development >PHP Tutorial >GeoIP PHP扩展安装与配置

GeoIP PHP扩展安装与配置

WBOY
WBOYOriginal
2016-06-23 13:43:581276browse

  作者:zhanhailiang 日期:2014-12-08

1. 安装依赖GeoIP-devel,GeoIP

GeoIP-devel.x86_64 : Development headers and libraries for GeoIPGeoIP.x86_64 : Library for country/city/organization to IP address or hostname mapping
yum install GeoIP.x86_64 GeoIP-devel.x86_64

2. 配置IP数据库GeoIP.dat,GeoLiteCity.dat

wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gzgunzip GeoIP.dat.gzmv GeoIP.dat /usr/local/share/GeoIP/
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gzgunzip GeoLiteCity.dat.gzmkdir -v /usr/share/GeoIPmv -v GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat
说明 :GeoIPRegion.dat是付费服务;

参考:

  • http://dev.maxmind.com/geoip/legacy/install/country/

  • http://forum.directadmin.com/showthread.php?t=43309

  • 3. 安装扩展

    git clone git@github.com:billfeller/geoip.git; phpize./configure --with-php-config=/usr/local/php/bin/php-config --with-geoipmake && make install

    4. 测试

    [root@~/wade/pecllearning/geoip]# /usr/local/php/bin/php -r 'print geoip_country_code3_by_name("220.181.112.244").PHP_EOL;'CHN[root@~/wade/pecllearning/geoip]# /usr/local/php/bin/php -r 'print_r(geoip_record_by_name("php.net"));'Array(    [continent_code] => NA    [country_code] => US    [country_code3] => USA    [country_name] => United States    [region] => CA    [city] => Fremont    [postal_code] => 94539    [latitude] => 37.51549911499    [longitude] => -121.8962020874    [dma_code] => 807    [area_code] => 510)

    注意,由于本地无GeoIPRegion.dat,调用 geoip_region_by_name 时会报Warning,如下

    [root@~/wade/pecllearning/geoip]# /usr/local/php/bin/php -r 'print geoip_region_by_name("220.181.112.244");'PHP Warning:  geoip_region_by_name(): Required database not available at /usr/share/GeoIP/GeoIPRegion.dat. in Command line code on line 1 Warning: geoip_region_by_name(): Required database not available at /usr/share/GeoIP/GeoIPRegion.dat. in Command line code on line 1
    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn