izisoft/yii2-geoip

Yii2 Component to allow for easy usage of the MaxMind Free dbs.

Installs: 32

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 0

Type:yii2-extension

v3.0 2018-10-27 21:16 UTC

This package is auto-updated.

Last update: 2024-03-04 17:16:32 UTC


README

Yii2 Component to allow for easy usage of the MaxMind Free dbs.

Based on package phiphi1992/Yii2-GeoIP by Phi Hoang Xuan.

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require izisoft/yii2-geoip "~2.0.0"

or add

"izisoft/yii2-geoip": "~2.0.0"

to the require section of your composer.json file.

Version ~2.0.0 Difference

Version ~2.0.0 uses the new GeoLite2 version of the db instead of the Legacy GeoLite which is now deprecated.

Database can be found here: https://dev.maxmind.com/geoip/geoip2/geolite2/

Component Setup

Once the extension is installed, simply modify your application configuration as follows:

return [
    'components' => [
    ...
        'geoip' => [
                   'class' => 'izi\geoip\components\CGeoIP',
               ],
        ...
    ],
    ...
];

If querying full City data is required, yii2-geoip-city-db must be required as well, see izisoft/yii2-geoip-city-db.

For more information on the data availability, see below.

Usage

All methods accept an IP address as an argument. If no argument is supplied Yii::$app->getRequest()->getUserIP() is used.

//Along with free DB
$location = Yii::$app->geoip->lookupLocation();
$countryCode = Yii::$app->geoip->lookupCountryCode();
$countryName = Yii::$app->geoip->lookupCountryName();

Location attributes:

$location->countryCode //Available in both Country and City DB
$location->countryName //Available in both Country and City DB
$location->continentCode //Available in both Country and City DB
$location->continentName //Available in both Country and City DB
$location->city //Available in only City DB
$location->postalCode //Available in only City DB
$location->latitude //Available in only City DB
$location->longitude //Available in only City DB
$location->timeZone //Available in only City DB