Skip to content

PanovAlexey/geo-location

Repository files navigation

Geo location service package

Build Status Scrutinizer Code Quality Code Coverage Code Intelligence Status Total Downloads Version

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.

Install

Via Composer

$ composer require codeblog.pro/geo-location

Usage

// 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"
//   }
// }

Testing

$ composer test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email panov@codeblog.pro instead of using the issue tracker.

Credits

License

The Apache License License. Please see License File for more information.

About

A Laravel package for providing the ability to obtain information about the user's location by IP.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages