【问题标题】:Maxmind GeoIP2 tutorial (How-to)?Maxmind GeoIP2 教程(操作方法)?
【发布时间】:2016-11-30 17:33:33
【问题描述】:

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

附言我没有 GIT/COMPOSER 等。

【问题讨论】:

    标签: maxmind geoip2


    【解决方案1】:

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

    1) 创建文件夹 GeoIp2 并将此“SRC”文件夹的内容 (download) 放入其中。
    2) 放入 MaxMind 文件夹(download,来自“SRC”文件夹)。
    3) 地点,即 GeoLite2-Country.mmdb (download)。

    然后,在 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
    

    附言其他示例见:https://github.com/maxmind/GeoIP2-php

    【讨论】:

    • MaxMind 还分发了一个包含依赖项的 Phar 文件,无需使用 Composer 即可更简单地加载。
    • @oschwald,如果可以的话,请用例子写一个答案,很多菜鸟都需要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多