gpt4 book ai didi

php - 使用 PHP 在 GeoLite2 中调用国家/地区引用

转载 作者:行者123 更新时间:2023-12-01 22:51:38 24 4
gpt4 key购买 nike

我正在尝试使用免费的 MaxMind GeoLite2 代码来确定特定 IP 地址的国家/地区。

我正在使用此处发布的无 Composer 方法: Get a localized name of the users city via Maxmind GeoLite2 Free

我确信它非常简单,但我不知道如何实际传递 IP 地址并让它返回国家/地区。

$reader = new Reader... 行之后我有 $place = $reader->country('##.###.##.###' );(其中 # 是实际的 IP 地址编号)并且它不起作用。我尝试将“国家/地区”替换为“城市”,但也没有用。我敢肯定这很简单,我只是不确定我需要使用哪些参数才能返回国家/地区。

错误日志中显示的错误是“PHP fatal error :调用未定义的方法 MaxMind\Db\Reader::city() in <<< path to benchmark.php >>>)”

如有任何想法/建议,我们将不胜感激。

最佳答案

您要包含的文件中没有定义 city()country() 函数(根据您链接到的答案。)相反,您应该使用get()获取IP地理信息,如下所示:

require_once __DIR__ . '/' . 'Db/Reader.php';
require_once __DIR__ . '/' . 'Db/Reader/Decoder.php';
require_once __DIR__ . '/' . 'Db/Reader/InvalidDatabaseException.php';
require_once __DIR__ . '/' . 'Db/Reader/Metadata.php';
require_once __DIR__ . '/' . 'Db/Reader/Util.php'; // new 2014/09
use MaxMind\Db\Reader;
$mmdb= 'GeoLite2-Country.mmdb';
$reader = new Reader( __DIR__ . '/' . $mmdb );
$ipData = $reader->get('##.###.##.###');
echo $ipData['country']['names']['en'];

##.###.##.### 替换为您要获取其信息的 IP。显然,这需要您拥有所有必需的代码文件和 GeoLite2-Country.mmdb

所以完整的步骤是:

  1. https://github.com/maxmind/MaxMind-DB-Reader-php 下载 MaxMind-DB-Reader-php
  2. src/MaxMind 中的 Db 文件夹复制到包含上述代码的文件所在的目录。
  3. http://dev.maxmind.com/geoip/geoip2/geolite2/ 下载 GeoLite2 Country MaxMind 数据库
  4. 解压缩下载的 gzip 并将 GeoLite2-Country.mmdb 文件复制到与包含上述代码的文件相同的目录。
  5. 您现在应该可以运行上面的代码了!只需确保将 ##.###.##.### 替换为真实 IP。

关于php - 使用 PHP 在 GeoLite2 中调用国家/地区引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26198262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com