geocoder-php / geoip2-provider
Geocoder GeoIP2 adapter
4.3.0
2022-07-30 10:48 UTC
Requires
- php: ^7.4 || ^8.0
- geoip2/geoip2: ~2.0
- willdurand/geocoder: ^4.0
Requires (Dev)
- geocoder-php/provider-integration-tests: ^1.0.1
- phpunit/phpunit: ^9.5
Provides
README
This is the GeoIP2 provider from the PHP Geocoder. This is a READ ONLY repository. See the main repo for information and documentation.
Install
composer require geocoder-php/geoip2-provider
Usage
The provider requires either a database file, or paid access to the web service.
Using a database file
Both free geolite2 and the paid precision city and country databases are supported.
//Use a Maxmind GeoIP2 Database: $reader = new \GeoIp2\Database\Reader('/path/to/geolite2.mmdb'); $adapter = new \Geocoder\Provider\GeoIP2\GeoIP2Adapter($reader); $geocoder = new \Geocoder\Provider\GeoIP2\GeoIP2($adapter); $address = $geocoder->geocodeQuery(\Geocoder\Query\GeocodeQuery::create('74.200.247.59'))->first();
Using the Precision Web Service (API)
The provider also support the Precision Web Services. Please note that these API are paid, and billed per request.
// Use the Maxmind GeoIP2 API: $reader = new \GeoIp2\WebService\Client(<account_id>, '<licence_key>'); $adapter = new \Geocoder\Provider\GeoIP2\GeoIP2Adapter($reader); $geocoder = new \Geocoder\Provider\GeoIP2\GeoIP2($adapter); $address = $geocoder->geocodeQuery(\Geocoder\Query\GeocodeQuery::create('74.200.247.59'))->first();
Contribute
Contributions are very welcome! Send a pull request to the main repository or report any issues you find on the issue tracker.