我有一些IP地址(
$_SERVER['REMOTE_ADDR']
),我必须接收(学习)国家/地区名称,如果我也能接收(学习)城市名称,那就太好了。并且不要忘记它是 php-project,有用的 API - 非常好。
P.S. 这是一些开源项目,我们必须仅使用免费和开源工具。
无(仅需要“GeoIP.dat”文件)。下载免费的 GeoIP 标准国家/地区 数据库,转至 http://maxmind.com/download/geoip/database/
安装
只需根据“include_path”指令将“geoip.inc”文件放置在某个位置 您的“php.ini”文件,或者将其放在与 PHP 脚本相同的目录中。
使用方法
通过主机名获取国家/地区名称:
include("geoip.inc");
$gi = geoip_open("/usr/local/share/GeoIP/GeoIP.dat",GEOIP_STANDARD);
echo geoip_country_code_by_addr($gi, "24.24.24.24") . "\t" .
geoip_country_name_by_addr($gi, "24.24.24.24") . "\n";
echo geoip_country_code_by_addr($gi, "80.24.24.24") . "\t" .
geoip_country_name_by_addr($gi, "80.24.24.24") . "\n";
HTH.
PHP 有一些有用的内置 GeoIP 函数。它们应该足够了:
$details = geoip_record_by_name($_SERVER['REMOTE_ADDR']);
echo $details['city'];
您也可以在这里查看:MaxMind GeoIP PHP API
我决定使用 http://lite.ip2location.com/ 的免费数据库,效果比迄今为止所有其他数据库都要好。
Linux环境下 1. sudo yum install php56-devel geoip geoip-devel php-pear 2. sudo pecl 安装 geoip 3.extension=geoip.so(在php.ini中添加此行) 4.将.dat文件移动到/usr/share/GeoIP文件夹中
Windows环境下 1.将.dll移动到ext文件夹中 2.将.dat文件移动到apache/bin文件夹中 3.在php.ini中添加dll扩展
MaxMind 似乎不再有免费服务了,我在 NetShekan 尝试过,但不工作