通过js 接收了用户的ip,我们需要通过ip得到用户的国家,可以通过一个库包来实现,下面是详细:
1.下载geoip的数据库:
cd geoip/
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gzip -d GeoIP.dat.gz
ls
GeoLiteCity.dat
- cd geoip/
- wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
- gzip -d GeoIP.dat.gz
- ls
- 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库包:
wget http://www.maxmind.com/download/geoip/api/php/php-latest.tar.gz
unzip php-latest.tar.gz
- wget http://www.maxmind.com/download/geoip/api/php/php-latest.tar.gz
- unzip php-latest.tar.gz
wget http://www.maxmind.com/download/geoip/api/php/php-latest.tar.gz
unzip php-latest.tar.gz
3.使用:
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,
];
}
- 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,
- ];
- }
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,
];
}