参考:https://sjolzy.cn/GeoIP-PHP-version-use.html
使用php扩展geoip获取地理位置
先获取一个免费的数据库:GeoIP.dat.gz ,(链接下方或者参考有链接)
解压得到:GeoIP.dat(这一步的文件可以从方法二获取最新的文件),
这边范例使用的是PHP。
GeoIP + PHP的使用
方法一:(获取国家代号,名称)
下载 GeoIP 的 PHP 文件geoip.inc,保存为 geoip.inc.php
geoip.inc
将获取的文件geoip.inc改成 geoip.inc.php
php代码:
<?php
include("geoip.inc.php");
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
$ip='115.239.212.133';
$country_code = geoip_country_code_by_addr($gi, $ip);
$country_name = geoip_country_name_by_addr($gi, $ip);
geoip_close($gi);
echo "<pre>";var_dump($country_code,$country_name);
方法二:
把 GeoIP 安装成 PHP 扩展
yum install GeoIP GeoIP-data GeoIP-devel
下载 GeoIP 数据库(这一步其实有没有无所谓,主要是我没有这个文件,csdn的下载积分太多了,很穷!!!)
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz
mv GeoLiteCity.dat /var/lib/GeoIP/GeoIPCity.dat
下载 GeoIP 的 PECL 扩展(我一般喜欢把资源下载到/usr/local/suore)
下载地址 http://pecl.php.net/package/geoip
wget -c http://pecl.php.net/get/geoip-1.0.7.tgz
tar -zxvf geoip-1.0.7.tgz
安 装 GeoIP 的 PECL 扩展
cd geoip-1.0.7
/usr/bin/phpize (这一步phpize如果出问题请百度,最大可能是少了依赖)
再找到你的php-config的位置 (我的是 /usr/bin/php-config)
./configure --with-php-config=/usr/bin/php-config --with-geoip
make
make install
最后在 php.ini 里加上
extension=geoip.so
接着重启一下 php 就行了
你使用 php 手册里的 GeoIP 部份函数了
http://cn.php.net/manual/en/book.geoip.php
安装后如何使用问题:
参考:https://dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs
我这边选的是php的composer安装
https://dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs
下载完后,在vendor同级目录下建立新的php文件,按照官方给的例子粘贴到php文件中,
红圈的就是方法一的GeoIP.dat文件,
最后访问该文件就可以了
两种方法代码地址:
方法一:https://download.csdn.net/download/qq_42909145/12642726
方法二:https://download.csdn.net/download/qq_42909145/12642750
想法:
说真的有时候我觉得有些东西,自己试过才知道,自己会了,想分享,那就认认真真的分享出来.想起伟人说过
实践是检验真理的唯一标准
,总之,愿诸位 学无止境,勤则可达;志存高远,恒亦能成。