Laravel service provider to retrieve a users location from their IP address using freegeoip.app or geolocation-db service.
- Laravel >= 5.5
- PHP 7.0 or greater
- cURL extension enabled
Via Composer
composer require psonrie/geolocation
Note: If you're using Laravel 5.5 or above, you can skip the registration of the service provider, as it is registered automatically.
Add the service provider in config/app.php
:
Psonrie\GeoLocation\GeoLocationServiceProvider::class,
Publish the config file:
php artisan vendor:publish --provider="Psonrie\GeoLocation\GeoLocationServiceProvider"
$geoLocation = new GeoLocation();
$response = $geoLocation->get('46.24.247.56');
// Returns instance of Psonrie\GeoLocation\Response
Psonrie\GeoLocation\Response {
ip: "46.24.247.56"
countryCode: "ES"
countryName: "Spain"
regionCode: "CT"
regionName: "Catalonia"
cityName: "Barcelona"
zipCode: "08004"
timeZone: "Europe/Madrid"
latitude: "41.3891"
longitude: "2.1611"
metroCode: 0
}
Contributions are welcome! Send a pull request to the main repository or report any issues you find on the issue tracker.
The MIT License (MIT). Please see LICENSE for more information.