Spaces:
No application file
No application file
namespace Mautic\CoreBundle\IpLookup; | |
class ExtremeIpLookup extends AbstractRemoteDataLookup | |
{ | |
public string $businessWebsite = ''; | |
public string $continent = ''; | |
public string $countryCode = ''; | |
public string $ipName = ''; | |
public string $ipType = ''; | |
public string $lat = ''; | |
public string $lon = ''; | |
public string $org = ''; | |
public string $query = ''; | |
public string $status = ''; | |
/** | |
* Return attribution HTML displayed in the configuration UI. | |
*/ | |
public function getAttribution(): string | |
{ | |
return '<a href="https://extreme-ip-lookup.com/" target="_blank">extreme-ip-lookup.com</a> is a free lookup service that does not require an api key.'; | |
} | |
/** | |
* Get the URL to fetch data from. | |
*/ | |
protected function getUrl(): string | |
{ | |
$auth = !empty($this->auth) ? '?key='.$this->auth : ''; | |
return 'https://extreme-ip-lookup.com/json/'.$this->ip.$auth; | |
} | |
protected function parseResponse($response) | |
{ | |
$data = json_decode($response, true); | |
if ($data) { | |
foreach ($data as $key => $value) { | |
switch ($key) { | |
case 'region': | |
$key = 'region'; | |
break; | |
case 'country': | |
$key = 'country'; | |
break; | |
case 'city': | |
$key = 'city'; | |
break; | |
case 'businessName': | |
$key = 'organization'; | |
break; | |
} | |
$this->$key = $value; | |
} | |
} | |
} | |
} | |