Geoip geoip-api-php 库包使用 – 通过ip 找到国家

通过js 接收了用户的ip,我们需要通过ip得到用户的国家,可以通过一个库包来实现,下面是详细:
1.下载geoip的数据库:

  1. cd geoip/
  2. wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
  3. gzip -d GeoIP.dat.gz
  4. ls
  5. GeoLiteCity.dat
cd geoip/  
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz  
gzip -d GeoIP.dat.gz  
ls  
GeoLiteCity.dat

 

其他库: 查看

GeoLite免费数据库

 

2. 下载php库包:

  1. wget http://www.maxmind.com/download/geoip/api/php/php-latest.tar.gz
  2. unzip php-latest.tar.gz
wget http://www.maxmind.com/download/geoip/api/php/php-latest.tar.gz  
unzip php-latest.tar.gz

3.使用:

  1. include("/www/web/develop/marketsystem/common/lib/geoip-api-php-1.14/src/geoip.inc");
  2. //得到国家。通过ip
  3. function getCountryByIp($ip){
  4. $gi = geoip_open("/www/web/develop/marketsystem/common/lib/geoip/GeoIP.dat", GEOIP_STANDARD);
  5. if(strstr($ip,":")){
  6. $country_code = geoip_country_code_by_addr_v6($gi,$ip);
  7. $country_name = geoip_country_name_by_addr_v6($gi,$ip);
  8. }else{
  9. $country_code = geoip_country_code_by_addr($gi,$ip);
  10. $country_name = geoip_country_name_by_addr($gi,$ip);
  11. }
  12. geoip_close($gi);
  13. return [
  14. "country_code" => $country_code,
  15. "country_name" => $country_name,
  16. ];
  17. }
include("/www/web/develop/marketsystem/common/lib/geoip-api-php-1.14/src/geoip.inc");  
  
//得到国家。通过ip  
function getCountryByIp($ip){  
    $gi = geoip_open("/www/web/develop/marketsystem/common/lib/geoip/GeoIP.dat", GEOIP_STANDARD);  
    if(strstr($ip,":")){  
        $country_code = geoip_country_code_by_addr_v6($gi,$ip);  
        $country_name = geoip_country_name_by_addr_v6($gi,$ip);  
    }else{  
        $country_code = geoip_country_code_by_addr($gi,$ip);  
        $country_name = geoip_country_name_by_addr($gi,$ip);  
    }  
    geoip_close($gi);  
    return [  
        "country_code" => $country_code,  
        "country_name" => $country_name,  
    ];  
}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注