2

我使用了 GeoIp,带有纯 PHP 代码.. 但是 GeoIp2 变成了命名空间等,此时我无法找到如何使用它.. 我已经下载GeoLite2-Country.mmdb了,现在如何获取 IP 的国家名称,即123.123.123.123

ps 我没有 GIT/COMPOSER 等。

4

1 回答 1

5

我是怎么做到的:假设创建一个名为“ My_Folder ”的文件夹并在其中:

1)创建文件夹GeoIp2并将此“SRC”文件夹的内容放入其中(下载)。
2)放置MaxMind文件夹(从“SRC”文件夹下载)。
3)放置即GeoLite2-Country.mmdb下载)。

然后,在My_Folder 创建一个example.php文件并放入以下代码:

$user_ip='123.123.123.123';

spl_autoload_register('func888'); function func888($class){ include_once(str_replace(array('/','\\'), DIRECTORY_SEPARATOR, dirname(__file__)."/$class.php")) ;}
use GeoIp2\Database\Reader; 
//you can do it for "city" too.. just everywhere change phrase "country" with "city".
try{
    $reader = new Reader(dirname(__file__)."/GeoLite2-Country.mmdb");
    $record = $reader->country($user_ip);
    $reader->close();
    $country_name =  $record->raw['country']['names']['en'];
} catch ( GeoIp2\Exception\AddressNotFoundException $e ){    $country_name = 'not_found';  }

echo $country_name;
// RESULTS -------------- > China

ps 其他示例位于:https ://github.com/maxmind/GeoIP2-php

于 2016-07-27T08:28:21.957 回答