Bundle for use maxmind/GeoIP2 in Symfony.
Pretty simple with Composer, run:
composer req gpslab/geoip2
Default configuration:
gpslab_geoip:
# Path to download GeoIP database.
# It's a default value. You can change it.
cache: '%kernel.cache_dir%/GeoLite2-City.mmdb'
# URL for download new GeoIP database.
# It's a default value. You can change it.
url: 'https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz'
# Get model data in this locale
# It's a default value. You can change it.
locales: [ '%locale%' ]
You can get GeoIP2 reader service:
// get a GeoIP2 City model
$record = $this->get('geoip2.reader')->city('128.101.101.101');
print($record->country->isoCode . "\n"); // 'US'
print($record->country->name . "\n"); // 'United States'
print($record->country->names['zh-CN'] . "\n"); // '美国'
print($record->mostSpecificSubdivision->name . "\n"); // 'Minnesota'
print($record->mostSpecificSubdivision->isoCode . "\n"); // 'MN'
print($record->city->name . "\n"); // 'Minneapolis'
print($record->postal->code . "\n"); // '55455'
print($record->location->latitude . "\n"); // 44.9733
print($record->location->longitude . "\n"); // -93.2323
For more example see the GeoIP2 library.
Execute command for update database:
php bin/console geoip2:update
This bundle is under the MIT license. See the complete license in the file: LICENSE