Spaces:
No application file
No application file
namespace Mautic\CoreBundle\IpLookup; | |
class IpinfodbLookup extends AbstractRemoteDataLookup | |
{ | |
public string $statusCode = ''; | |
public string $statusMessage = ''; | |
public string $ipAddress = ''; | |
public string $countryCode = ''; | |
public function getAttribution(): string | |
{ | |
return '<a href="http://www.ipinfodb.com/" target="_blank">iPInfoDB</a> offers a free service (2 lookups per second) that leverages data from IP2Location. API key required.'; | |
} | |
protected function getUrl(): string | |
{ | |
return "http://api.ipinfodb.com/v3/ip-city/?key={$this->auth}&format=json&ip={$this->ip}"; | |
} | |
protected function parseResponse($response) | |
{ | |
$data = json_decode($response); | |
if ($data) { | |
foreach ($data as $key => $value) { | |
switch ($key) { | |
case 'cityName': | |
$key = 'city'; | |
break; | |
case 'regionName': | |
$key = 'region'; | |
break; | |
case 'countryName': | |
$key = 'country'; | |
break; | |
case 'zipCode': | |
$key = 'zipcode'; | |
break; | |
case 'timeZone': | |
$key = 'timezone'; | |
break; | |
} | |
$this->$key = ucfirst($value); | |
} | |
} | |
} | |
} | |