reefki/laravel-geoip

Laravel 包,用于获取 IP 地址的地理位置。

v1.0.0 2023-10-08 22:14 UTC

This package is auto-updated.

Last update: 2024-09-09 00:24:20 UTC


README

tests

Laravel 包,用于获取 IP 地址的地理位置。

安装

此包可以通过 Composer 安装。

composer require reefki/laravel-geoip

可选地,您可以使用以下命令发布此包的配置文件

php artisan vendor:publish --provider="Reefki\Geoip\GeoipServiceProvider" --tag="config"

基本用法

使用外观获取 IP 地址信息

use Reefki\Geoip\Geoip;

$geoip = Geoip::get('8.8.8.8');
// Or
$geoip = Geoip::get('2001:4860:4860:0:0:0:0:8888');

$geoip->driver; // geojs.
$geoip->ip; // 8.8.8.8
$geoip->city; // Mountain View
$geoip->region; // California
$geoip->country; // United States
$geoip->country_code; // US
$geoip->continent_code; // NA
$geoip->timezone; // America/Chicago
$geoip->latitude; // 37.751
$geoip->longitude; // -97.822
$geoip->cached; // true or false

默认情况下,结果将被缓存,要获取实时数据,可以将布尔值作为第二个参数传递

use Reefki\Geoip\Geoip;

Geoip::get('8.8.8.8', false);

通过请求获取访客的 IP 地址

$geoip = $request->geoip(anonymize: true, cache: true);

获取访客的匿名 IP 地址

// 8.8.8.8 = 8.8.8.0
// 2001:4860:4860:0:0:0:0:8888 = 2001:4860:4860::
$anonymizedIp = $request->anonymizedIp();

驱动程序

Laravel GeoIP 支持多个驱动程序。默认情况下,如果您在调用外观或通过 Laravel 请求实例调用 geoip() 方法时未指定驱动程序,将使用 geojs 驱动程序。

您可以在 .env 文件中更改默认驱动程序,如下所示

GEOIP_DEFAULT_DRIVER=geojs

以下是当前可用的驱动程序。

GeoJS

这是一个完全免费的服务,您无需做任何事情就可以使其工作。只需将 geojs 传递给驱动程序参数。

use Reefki\Geoip\Geoip;

Geoip::driver('geojs')->get('8.8.8.8');

IPData

要使用此驱动程序,请 注册 账户并将 API 密钥放在您的 .env 文件中,如下所示

IPDATA_API_KEY=YOUR_API_KEY

要使用此驱动程序获取 IP 信息,您可以将 ip-data 传递给驱动程序参数

use Reefki\Geoip\Geoip;

Geoip::driver('ip-data')->get('8.8.8.8');

请注意:IPData 提供 1500 次每日免费请求。如果您的每日使用量超过 1500,则需要升级到他们的付费计划之一。

测试

使用以下命令运行测试

vendor/bin/phpunit

致谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件