codeblog.pro / laravel-geo-location
此包允许您通过用户的IP获取用户的位置。该包提供了同时使用多个服务的能力,以增加准确性并增加免费限制。
v0.1.2
2020-10-06 13:08 UTC
Requires
- php: >=7.4
- codeblog.pro/geo-coordinates: ^1.0.0
- codeblog.pro/geo-location-address: ^0.0.1
- guzzlehttp/guzzle: ^7.0
- illuminate/routing: ^7.23
- illuminate/support: ^7.9
Requires (Dev)
- nunomaduro/phpinsights: ^1.14
- phpstan/phpstan: ^0.12.47
- phpunit/php-code-coverage: ^8.0
- phpunit/phpunit: ^9.0.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-09-30 01:05:39 UTC
README
该包是多个地理定位服务的包装器。该包的主要任务是确定用户的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许可证。请参阅许可证文件以获取更多信息。