2016-07-26 64 views
2

我用GeoIp,純PHP代碼.. 但GeoIp2成爲名稱空間等,在這一刻我無法找出如何使用..我已經下載GeoLite2-Country.mmdb,現在如何獲得IP的國家名稱,即123.123.123.123Maxmind GeoIP2教程(操作方法)?

p.s.我沒有GIT /作曲或等。

回答

3

如何我做到了:比方說,創建一個文件夾命名爲「My_Folder」和裏面:

1)創建文件夾GeoIp2,並把它的內容這個「SRC」文件夾(download)。
2)把MaxMind文件夾(download,來自「SRC」文件夾)。
3)地方即GeoLite2-Country.mmdbdownload)。

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

+0

MaxMind還發布了一個Phar文件,其中包含依賴項,可以在不使用Composer的情況下更簡單地加載該依賴項。 –

+0

@oschwald請,如果可以的話,用例子寫一個答案,許多noobs需要。 –