The package is a wrapper for several geolocation services at once. The main task of the package is to determine the user's location by IP. Due to the possibility of using several providers at once, the free limit of each provider is summed up.
Via Composer
$ composer require codeblog.pro/geo-location// First way: in code
$geoLocationService = new \CodeblogPro\GeoLocation\Application\Services\GeoLocationService();
$location = $geoLocationService->getLocationByIpAndLanguageResultCode('8.8.8.8', 'EN');
var_dump($location);
$locationArray = $geoLocationService->getLocationArrayByIpAndLanguageResultCode('8.8.8.8', 'RU');
var_dump($locationArray);
$currentIpResolver = new \CodeblogPro\GeoLocation\Application\Services\CurrentIpResolver();
$currentIp = $geoLocationService->getCurrentIpByIpResolver($currentIpResolver)->getValue();
var_dump($currentIp);
$locationByIpResolverAndLanguageResultCode = $geoLocationService->getLocationByIpResolverAndLanguageResultCode(
$currentIpResolver,
'RU'
);
var_dump($locationByIpResolverAndLanguageResultCode);
// Second way (only for Laravel): using a GET request,
// for example by url http://<our-domain>/api/geo-location/46.174.50.30/en
// Result:
// {
// "data":{
// "latitude":55.07944,
// "longitude":38.77833,
// "country_name":"Russia",
// "country_code":"RU",
// "region_name":"Moskovskaya Oblast'",
// "region_code":"RU-MOS",
// "street_name":"",
// "postal_code":"1404xx",
// "locality":"Kolomna"
// }
// }$ composer testPlease see CONTRIBUTING for details.
If you discover any security related issues, please email panov@codeblog.pro instead of using the issue tracker.
The Apache License License. Please see License File for more information.