2017-01-15 2 views
0

私はMaxMindからGeoLite2がインストールされているとテストPHPファイル:isoCodeフォームGeoLite2を取得するには?

<?php 
require_once 'vendor/autoload.php'; 

use MaxMind\Db\Reader; 
$ipAddress = '8.8.8.8'; 
$databaseFile = './GeoLite2-Country.mmdb'; 

$reader = new Reader($databaseFile); 

print_r($reader->get($ipAddress)); 

$reader->close(); 

は私にこれらの結果を与える:私は必要なもの

Array ([continent] => Array ([code] => NA [geoname_id] => 6255149 [names] => Array ([de] => Nordamerika [en] => North America [es] => Norteamérica [fr] => Amérique du Nord [ja] => 北アメリカ [pt-BR] => América do Norte [ru] => Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ðмерика [zh-CN] => 北美洲)) [country] => Array ([geoname_id] => 6252001 [iso_code] => US [names] => Array ([de] => USA [en] => United States [es] => Estados Unidos [fr] => États-Unis [ja] => アメリカåˆè¡†å›½ [pt-BR] => Estados Unidos [ru] => СШР[zh-CN] => 美国)) [registered_country] => Array ([geoname_id] => 6252001 [iso_code] => US [names] => Array ([de] => USA [en] => United States [es] => Estados Unidos [fr] => États-Unis [ja] => アメリカåˆè¡†å›½ [pt-BR] => Estados Unidos [ru] => СШР[zh-CN] => 美国))) 

を誰もが知っている、ちょうどisoCode(この場合はUS)でありますGeoLite2からちょうど "US"を取得するにはどうすればいいですか?

答えて

2

これはMaxMind's database readerの設計方法です。すべてのルックアップに対して常にフルレコードを返します。

あなたが直接返される配列の要素にアクセスすることにより、興味のある特定の情報を得ることができます:あなたの例を変更する

// Fetch the database record for this IP address 
$record = $reader->get($ipAddress); 

// Output just the ISO country code ("US", in this case) 
echo $record['country']['iso_code'] . PHP_EOL; 
+0

ありがとうサイモン私はちょうどiso_codeを求めることができると思った。 – Belhor

0

を:

<?php 
require_once 'vendor/autoload.php'; 

use MaxMind\Db\Reader; 
$ipAddress = '8.8.8.8'; 
$databaseFile = './GeoLite2-Country.mmdb'; 

$reader = new Reader($databaseFile); 

$record = $reader->get($ipAddress); 

print($record['country']['iso_code']); 

$reader->close(); 

またはGeoIp2 APIを使用して:

<?php 
require_once 'vendor/autoload.php'; 
use GeoIp2\Database\Reader; 


$reader = new Reader('/usr/local/share/GeoIP/GeoIP2-City.mmdb'); 


$record = $reader->city('8.8.8.8'); 
print($record->country->isoCode); 
関連する問題