Spaces:
No application file
No application file
| namespace Mautic\CoreBundle\IpLookup; | |
| class IpstackLookup extends AbstractRemoteDataLookup | |
| { | |
| public string $country_code = ''; | |
| public string $region_code = ''; | |
| public string $metro_code = ''; | |
| public function getAttribution(): string | |
| { | |
| return '<a href="https://ipstack.com/" target="_blank">ipstack.com</a> is a free lookup service that leverages GeoLite2 data created by MaxMind.'; | |
| } | |
| protected function getUrl(): string | |
| { | |
| if (empty($this->auth)) { | |
| $this->logger->warning('FreeGeoIP has become IPStack and now requires an API key.'); | |
| } | |
| return 'http://api.ipstack.com/'.$this->ip.'?access_key='.$this->auth.'&output=json&legacy=1'; | |
| } | |
| protected function parseResponse($response) | |
| { | |
| $data = json_decode($response); | |
| if ($data) { | |
| foreach ($data as $key => $value) { | |
| switch ($key) { | |
| case 'region_name': | |
| $key = 'region'; | |
| break; | |
| case 'country_name': | |
| $key = 'country'; | |
| break; | |
| case 'zip': | |
| $key = 'zipcode'; | |
| break; | |
| case 'time_zone': | |
| $key = 'timezone'; | |
| break; | |
| } | |
| $this->$key = $value; | |
| } | |
| } | |
| } | |
| } | |