/**
  * @return array or boolean false
  */
 public function findLocationByIp()
 {
     $ip = $this->findIp();
     if (empty($ip)) {
         return false;
     }
     if (Validation::ip($ip)) {
         App::import('Vendor', 'geoip', ['file' => 'geoip' . DS . 'geoip.php']);
         $gi = Net_GeoIP::getInstance(APP . 'vendors' . DS . 'geoip' . DS . 'GeoLiteCity.dat');
         $record = $gi->lookupLocation($ip);
         $gi->close();
     } else {
         $this->log('Invalid IP \'' . h($ip) . '\'', LOG_WARNING);
     }
     return !empty($record) ? $this->findLocationByCoordinates($record->latitude, $record->longitude, 1) : false;
 }