如何在PHP项目中创建GeoIP功能?

问题描述 投票:0回答:6

我有一些IP地址(

$_SERVER['REMOTE_ADDR']
),我必须接收(学习)国家/地区名称,如果我也能接收(学习)城市名称,那就太好了。并且不要忘记它是 php-project,有用的 API - 非常好。

P.S. 这是一些开源项目,我们必须仅使用免费和开源工具。

php geolocation geoip
6个回答
5
投票

无(仅需要“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.


2
投票

PHP 有一些有用的内置 GeoIP 函数。它们应该足够了:

$details = geoip_record_by_name($_SERVER['REMOTE_ADDR']);
echo $details['city'];

2
投票

您也可以在这里查看:MaxMind GeoIP PHP API


1
投票

我决定使用 http://lite.ip2location.com/ 的免费数据库,效果比迄今为止所有其他数据库都要好。


0
投票

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扩展


0
投票

MaxMind 似乎不再有免费服务了,我在 NetShekan 尝试过,但不工作

© www.soinside.com 2019 - 2024. All rights reserved.