Dieses Paket enthält eine PHP -Bibliothek, die das Land einer IP -Adresse bestimmt.
Sie können die PHP -Geolokalisierung problemlos mit Komponisten installieren.
composer require divineomega/php-geolocation
Die einfachste Verwendung der PHP -Geolokalisierung besteht darin, ein neues Locator -Objekt zu erstellen und seine getCountryByIP -Methode aufzurufen.
// 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...
}
*/ Sie können die PHP-Geolocation so konfigurieren, dass sie alle PSR-6-konformen Caching-Bibliothek verwenden. Dies kann einfach mit der setCache -Methode erfolgen.
Das folgende Beispiel konfiguriert einen Datei-Cache (bereitgestellt durch das cache/filesystem-adapter -Paket).
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 ' ); Standardmäßig versucht PHP Geolocation, den nativen whois -Befehl des Betriebssystems zu verwenden, um die IP -Adresse zu bestimmen. Wenn Sie sich wünschen, können Sie einen alternativen Standortanbieter verwenden. Dies kann wie folgt mit der setLocationProvider -Methode erfolgen.
$ locator = new Locator ;
$ locator -> setLocationProvider ( new IpStack ( ' my_ip_stack_api_key ' );
$ country = $ locator -> getCountryByIP ( ' 93.184.216.34 ' );Um eine kostenlose API -Schlüssel zu erhalten, melden Sie sich auf der Website von IP Stack an.
Wenn Sie Ihren eigenen Standortanbieter entwickeln möchten, erstellen Sie einfach eine neue Klasse, die das in diesem Paket bereitgestellte LocationProviderInterface implementiert. Sehen Sie sich die vorhandenen WhoIs und FreeGeoIP -Standort -Anbieterklassen an, wenn Sie Hilfe bei der Erstellung Ihres eigenen Standortanbieters benötigen.