codeblog.pro/laravel-geo-location

此包允许您通过用户的IP获取用户的位置。该包提供了同时使用多个服务的能力,以增加准确性并增加免费限制。

v0.1.2 2020-10-06 13:08 UTC

README

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

该包是多个地理定位服务的包装器。该包的主要任务是确定用户的IP位置。由于可以同时使用多个提供者,因此将每个提供者的免费限制相加。

安装

通过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 test

贡献

请参阅CONTRIBUTING以获取详细信息。

安全性

如果您发现任何与安全性相关的问题,请通过电子邮件panov@codeblog.pro联系,而不是使用问题跟踪器。

鸣谢

许可证

Apache许可证。请参阅许可证文件以获取更多信息。