Este pacote fornece uma biblioteca PHP que determina o país de um endereço IP.
Você pode instalar facilmente a geolocalização do PHP com o compositor.
composer require divineomega/php-geolocation
O uso mais simples da geolocalização do PHP é criar um novo objeto de localizador e chamar seu método getCountryByIP .
// Get country of the current request's IP address
$ country = ( new Locator )-> getCountryByIP ( $ _SERVER [ ' REMOTE_ADDR ' ]);
// Get country of a specific IP address
$ country = ( new Locator )-> getCountryByIP ( ' 93.184.216.34 ' );
// Returns a Country object
/*
object(DivineOmegaCountriesCountry)#4693 (16) {
["name"]=>
string(13) "United States"
["officialName"]=>
string(24) "United States of America"
// etc...
}
*/ Você pode configurar a geolocalização do PHP para usar qualquer biblioteca de cache compatível com PSR-6. Isso é feito facilmente usando o método setCache .
O exemplo a seguir configura um cache de arquivo (fornecido pelo pacote cache/filesystem-adapter ).
use League Flysystem Adapter Local ;
use League Flysystem Filesystem ;
use Cache Adapter Filesystem FilesystemCachePool ;
$ filesystemAdapter = new Local ( __DIR__ . ' / ' );
$ filesystem = new Filesystem ( $ filesystemAdapter );
$ cachePool = new FilesystemCachePool ( $ filesystem );
$ locator = new Locator ;
$ locator -> setCache ( $ cachePool );
$ country = $ locator -> getCountryByIP ( ' 93.184.216.34 ' ); Por padrão, a geolocalização do PHP tentará usar o comando whois nativo do sistema operacional para determinar o endereço IP. Se você deseja usar um provedor de localização alternativo. Isso pode ser feito usando o método setLocationProvider , como segue.
$ locator = new Locator ;
$ locator -> setLocationProvider ( new IpStack ( ' my_ip_stack_api_key ' );
$ country = $ locator -> getCountryByIP ( ' 93.184.216.34 ' );Para obter uma chave de API gratuita, inscreva -se no site da IP Stack.
Se você deseja desenvolver seu próprio provedor de localização, basta criar uma nova classe que implementa o LocationProviderInterface fornecido neste pacote. Consulte as classes de provedores de localização WhoIs e FreeGeoIP existentes se precisar de ajuda para criar seu próprio provedor de localização.