overals/yii2-geoip2

Yii2 GeoIP2 extension. Returns country, city, latitude, longitude, time zone, iso code, continent, subdivisions by IP (uses MaxMind's GeoIP2 databases)

Installs: 5 200

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 2

Open Issues: 0

Type:yii2-extension

1.0.2 2018-04-12 15:44 UTC

This package is auto-updated.

Last update: 2024-04-14 02:45:21 UTC


README

Provides information about geographical location of user by IP address.

Currently available:

  • Country
  • City
  • Latitude, Longitude
  • Time Zone
  • ISO Code
  • Continent
  • Subdivisions

Installation

$ php composer.phar require overals/yii2-geoip2 "~1.0.1"

OR

Add to your composer.json

{
    "require": {
        "overals/yii2-geoip2": "~1.0.1"
    }
}

and run

$ composer update

Usage

Update your config file - config/web.php

<?php

$config = [
    ...
    'components' => [
        'geoip2' => [
            'class' => 'overals\GeoIP2\GeoIP2',
            'mmdb' => '@app/components/GeoIP2/GeoLite2-City.mmdb',
            'lng' => 'en', // available languages = 'de', 'en', 'es', 'ja', 'ru', 'zh-CN'
        ],
    ]
    ...
];

somewhere in code:

$ip = Yii::$app->component->geoip2->getInfoByIP(); // current user ip
$ip = Yii::$app->component->geoip2->getInfoByIP("8.8.8.8");

$ip->continent; // "North America"
$ip->country; // "United States"
$ip->isoCode; // "US"
$ip->subdivisions; // "California"
$ip->city; // "Mountain View"
$ip->location->longitude; // -122.0838
$ip->location->latitude; // 37.386

This product uses GeoLite2 data created by MaxMind, available from http://www.maxmind.com

Where you can download Maxmind Free DBs?

From http://dev.maxmind.com/geoip/geoip2/geolite2/

OR

    cd /usr/local/share/GeoIP (change to your folder)
    wget -N -q http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
    gunzip -c GeoLite2-City.mmdb.gz > GeoLite2-City.mmdb