Ejemplo n.º 1
0
 /**
  * Get the raw GeoIP info using Maxmind.
  * 
  * @param  string $ip
  * 
  * @return mixed
  */
 public function getRaw($ip)
 {
     try {
         return $this->maxmind->city($ip);
     } catch (AddressNotFoundException $e) {
         // ignore
     }
     return [];
 }
 public function getIsoCodeFromIpAddress($ipAddress)
 {
     if ($this->userId == '') {
         return null;
     }
     if ($ipAddress == '127.0.0.1') {
         return null;
     }
     // @codeCoverageIgnoreStart
     $client = new Client($this->userId, $this->licenseKey);
     $model = $client->country($ipAddress);
     $isoCode = $model->country->isoCode;
     return $isoCode;
     // @codeCoverageIgnoreEnd
 }
Ejemplo n.º 3
0
 public function city($ip)
 {
     $method = get_option('geoip-detect-precision_api_type', 'city');
     $ret = null;
     $callback = array($this, $method);
     if (!is_callable($callback)) {
         throw new \RuntimeException('Precision API: Unsupported method ' . $method);
     }
     if ($method == 'city') {
         $ret = parent::city($ip);
     } else {
         $ret = call_user_func_array($callback, array($ip));
     }
     /* Web-API-specific exceptions:
     			} catch (AuthenticationException $e) {
     			} catch (OutOfQueriesException $e) {
     			}
     			*/
     if ($ret) {
         $credits = $ret->maxmind->queriesRemaining;
         // This seems to be approximate.
         update_option('geoip-detect-precision-remaining_credits', $credits);
     }
     return $ret;
 }
Ejemplo n.º 4
0
 public function __destruct()
 {
     try {
         if ($this->_reader instanceof Reader) {
             $this->_reader->close();
         }
     } catch (\Exception $e) {
     }
 }
Ejemplo n.º 5
0
function hm_time_geoip_lookup($hostname = null)
{
    if (empty($hostname)) {
        if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
            $hostname = $_SERVER['HTTP_CLIENT_IP'];
        } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            //to check ip is pass from proxy
            $hostname = $_SERVER['HTTP_X_FORWARDED_FOR'];
        } else {
            $hostname = $_SERVER['REMOTE_ADDR'];
        }
    }
    $maxmind_user_id = hm_time_options('geoip_user_id', 'string');
    $maxmind_user_id = (int) $maxmind_user_id;
    $maxmind_license_key = hm_time_options('geoip_license_key');
    $client = new Client($maxmind_user_id, $maxmind_license_key);
    try {
        $record = $client->omni($hostname);
    } catch (GeoIp2\Exception\AddressNotFoundException $e) {
        return false;
    }
    return $record;
}
Ejemplo n.º 6
0
 public function testParams()
 {
     $plugin = new MockPlugin();
     $plugin->addResponse($this->getResponse('1.2.3.4'));
     $guzzleClient = new GuzzleClient();
     $guzzleClient->addSubscriber($plugin);
     $client = new Client(42, 'abcdef123456', array('en'), 'geoip.maxmind.com', $guzzleClient);
     $client->country('1.2.3.4');
     $all_requests = $plugin->getReceivedRequests();
     $request = $all_requests[0];
     $this->assertEquals('https://geoip.maxmind.com/geoip/v2.1/country/1.2.3.4', $request->getUrl(), 'got expected URI for Country request');
     $this->assertEquals('GET', $request->getMethod(), 'request is a GET');
     $this->assertEquals('application/json', $request->getHeader('Accept'), 'request sets Accept header to application/json');
     $this->assertStringMatchesFormat('GeoIP2 PHP API (Guzzle%s)', $request->getHeader('User-Agent') . '', 'request sets Accept header to application/json');
 }
 /**
  * @group external-http
  * @expectedException \GeoIp2\Exception\AuthenticationException
  */
 function testMaxmindApiPasswordWrong2()
 {
     $client = new Client('', '');
     $client->city('8.8.8.8');
 }