2013-06-01 16:30:40 +02:00
2013-06-01 14:56:34 +01:00
2013-06-01 06:52:03 -07:00
2013-06-01 14:56:34 +01:00
2013-06-01 14:56:34 +01:00
2013-06-01 16:30:40 +02:00
2013-06-01 14:56:34 +01:00

yii-geoip

Yii Module to allow for easy usage of the MaxMind Free dbs.

Installation of the component:

  • Extract the release file under protected/extensions

  • Change main.php configuration file

      'components' => array(
          ...
          'geoip' => array(
              'class' => 'application.extensions.geoip.CGeoIP',
              // specify filename location for the corresponding database
              'filename' => 'C:\path\to\GeoIP\GeoLiteCity.dat',
              // Choose MEMORY_CACHE or STANDARD mode
              'mode' => 'STANDARD',
          ),
          ...
      ),
    

Usage instructions:

All methods accept an IP address as an argument. If no argument is supplied CHttpRequest::getUserHostAddress() is used.

$location = Yii::app()->geoip->lookupLocation();
$countryCode = Yii::app()->geoip->lookupCountryCode();
$countryName = Yii::app()->geoip->lookupCountryName();
$org = Yii::app()->geoip->lookupOrg();
$regionCode = Yii::app()->geoip->lookupRegion();

Location attributes:

$location->countryCode
$location->countryCode3
$location->countryName
$location->region
$location->regionName
$location->city
$location->postalCode
$location->latitude
$location->longitude
$location->areaCode
$location->dmaCode

How to update Maxmind Free DBs example:

updateGeoIP.sh this script will only download if there is a new version of the database

cd /usr/local/share/GeoIP
wget -N -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget -N -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget -N -q http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz

gunzip -c GeoLiteCity.dat.gz > GeoLiteCity.dat
gunzip -c GeoIP.dat.gz > GeoIP.dat
gunzip -c GeoIPv6.dat.gz > GeoIPv6.dat
  • Setup a cron job to run this script monthly.
Description
Yii Module
Readme 87 KiB
Languages
PHP 100%