| * +----------------------------------------------------------------------+ * * @category Net * @package GeoIP * @author Dinis Lage * @license LGPL http://www.gnu.org/licenses/lgpl.txt * $Id: GeoIP.php 296763 2010-03-25 00:53:44Z clockwerx $ */ /** * CGeoip class file. * * @author Dinis Lage * @link http://www.yiiframework.com/ * @version 0.1 */ Yii::import('application.extensions.geoip.GeoIP'); class CGeoIP extends CApplicationComponent { public $filename = '/usr/local/share/GeoIP/GeoLiteCity.dat'; public $mode; protected static $flags = GeoIP::STANDARD; protected static $geoip; public function init() { switch($this->mode) { case 'MEMORY_CACHE': self::$flags = GeoIP::MEMORY_CACHE; break; default: self::$flags = GeoIP::STANDARD; break; } self::$geoip = GeoIP::getInstance($this->filename, self::$flags); // Run parent parent::init(); } public function lookupLocation($ip=null) { $ip = $this->_getIP($ip); return self::$geoip->lookupLocation($ip); } public function lookupCountryCode($ip=null) { $ip = $this->_getIP($ip); return self::$geoip->lookupCountryCode($ip); } public function lookupCountryName($ip=null) { $ip = $this->_getIP($ip); return self::$geoip->lookupCountryName($ip); } public function lookupOrg($ip=null) { $ip = $this->_getIP($ip); return self::$geoip->lookupOrg($ip); } public function lookupRegion($ip=null) { $ip = $this->_getIP($ip); return self::$geoip->lookupRegion($ip); } protected function _getIP($ip=null) { if ($ip === null) { $ip = Yii::app()->getRequest()->getUserHostAddress(); } return $ip; } } ?>