|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / app / code / Swissup / Geoip / Model / Provider / |
Filename | /home/dev2.destoffenstraat.com/app/code/Swissup/Geoip/Model/Provider/Ipstack.php |
Size | 2.05 kb |
Permission | rwxrwxrwx |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 15-Apr-2022 17:45 |
Last accessed | 21-Aug-2025 22:38 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
namespace Swissup\Geoip\Model\Provider;
use Swissup\Geoip\Model\ProviderContext;
use Magento\Framework\HTTP\ClientFactory;
class Ipstack extends AbstractProvider
{
const BASE_URL = 'http://api.ipstack.com/';
const API_KEY_CONFIG = 'geoip/main/ipstack_api_key';
/**
* @var ClientFactory
*/
protected $httpClientFactory;
/**
* @param ProviderContext $context
* @param ClientFactory $httpClientFactory
*/
public function __construct(
ProviderContext $context,
ClientFactory $httpClientFactory
) {
parent::__construct($context);
$this->httpClientFactory = $httpClientFactory;
}
/**
* @param string $ip
* @return mixed
*/
public function detect($ip)
{
$client = $this->httpClientFactory->create();
$client->get($this->getUri($ip));
$data = json_decode($client->getBody(), true);
if (!$data) {
return;
}
if (!empty($data['error'])) {
throw new \Exception($data['error']['info']);
}
if (!empty($data['country_code']) && !empty($data['region_code'])) {
return $data;
}
}
/**
* @return string
*/
public function getCityName()
{
return $this->rawRecord['city'];
}
/**
* @return string
*/
public function getRegionCode()
{
return $this->rawRecord['region_code'];
}
/**
* @return string
*/
public function getCountryCode()
{
return $this->rawRecord['country_code'];
}
/**
* @return string
*/
public function getPostalCode()
{
return $this->rawRecord['zip'];
}
/**
* @return boolean
*/
public function isCacheable()
{
return true;
}
/**
* @param string $ip
* @return string
*/
private function getUri($ip)
{
return self::BASE_URL . $ip
. '?access_key=' . $this->getConfigValue(self::API_KEY_CONFIG)
. '&output=json';
}
}
namespace Swissup\Geoip\Model\Provider;
use Swissup\Geoip\Model\ProviderContext;
use Magento\Framework\HTTP\ClientFactory;
class Ipstack extends AbstractProvider
{
const BASE_URL = 'http://api.ipstack.com/';
const API_KEY_CONFIG = 'geoip/main/ipstack_api_key';
/**
* @var ClientFactory
*/
protected $httpClientFactory;
/**
* @param ProviderContext $context
* @param ClientFactory $httpClientFactory
*/
public function __construct(
ProviderContext $context,
ClientFactory $httpClientFactory
) {
parent::__construct($context);
$this->httpClientFactory = $httpClientFactory;
}
/**
* @param string $ip
* @return mixed
*/
public function detect($ip)
{
$client = $this->httpClientFactory->create();
$client->get($this->getUri($ip));
$data = json_decode($client->getBody(), true);
if (!$data) {
return;
}
if (!empty($data['error'])) {
throw new \Exception($data['error']['info']);
}
if (!empty($data['country_code']) && !empty($data['region_code'])) {
return $data;
}
}
/**
* @return string
*/
public function getCityName()
{
return $this->rawRecord['city'];
}
/**
* @return string
*/
public function getRegionCode()
{
return $this->rawRecord['region_code'];
}
/**
* @return string
*/
public function getCountryCode()
{
return $this->rawRecord['country_code'];
}
/**
* @return string
*/
public function getPostalCode()
{
return $this->rawRecord['zip'];
}
/**
* @return boolean
*/
public function isCacheable()
{
return true;
}
/**
* @param string $ip
* @return string
*/
private function getUri($ip)
{
return self::BASE_URL . $ip
. '?access_key=' . $this->getConfigValue(self::API_KEY_CONFIG)
. '&output=json';
}
}