el-factory / ip-api
一个简单的Laravel扩展包,用于从ip-api.com获取IP地址信息
Requires
- php: >=7.2
- illuminate/support: >=7.0
Requires (Dev)
- orchestra/testbench: ^8.5
- pestphp/pest: ^2.9
README
IpApi
包提供了一个简单的接口,通过ip-api.com API查找IP地址信息。它允许您获取有关IP地址的详细信息,如地理位置、时区、货币等。
要求
- PHP 7.2或更高版本
- Laravel 7或更高版本
安装
IpApi
包需要Laravel版本7或更高。
要安装此包,您可以使用Composer
composer require el-factory/ip-api
配置
安装包后,您可以发布配置文件以自定义默认设置(可选)
php artisan vendor:publish --tag=ip-api-config
这将在您的Laravel应用程序的config目录中创建一个ip-api.php
文件。您可以根据具体需求在此文件中修改默认配置值。
用法
IP地址查找
要执行IP地址查找,您可以使用IpApi
类的lookup
方法
use ElFactory\IpApi\IpApi; $ipDetails = IpApi::default('188.216.103.93')->lookup();
这将返回一个包含提供IP地址详细信息的数组。
附加配置
您还可以通过以下方法自定义IP地址查找
fields(array $fields): IpApi
设置API响应中要包含的字段。参数$fields
应该是一个包含您要检索的字段的数组。
$ipDetails = IpApi::default('188.216.103.93')->fields(['city', 'country', 'timezone'])->lookup();
usingKey(string $apiKey): IpApi
默认情况下,该包使用配置文件中提供的API密钥。如果您希望为特定请求发送不同的API密钥,可以使用usingKey
方法设置该请求的API密钥。
$ipDetails = IpApi::default('188.216.103.93')->usingKey('YOUR_API_KEY')->lookup();
retry(int $times, int $sleep): IpApi
设置失败API请求的重试配置。参数$times
代表重试尝试次数,参数$sleep
指定两次重试之间的秒数。
$ipDetails = IpApi::default('188.216.103.93')->retry(3, 2)->lookup();
lang(string $language): IpApi
设置API响应的语言。参数$language
应该是一个两位语言代码。
$ipDetails = IpApi::default('188.216.103.93')->lang('en')->lookup();
withHeaders(): IpApi
在API响应中包含请求限制和剩余请求头。
$ipDetails = IpApi::default('188.216.103.93')->withHeaders()->lookup();
控制台命令 - ip-api:connection
IpApi
包还包括一个名为ip-api:connection
的控制台命令,允许您使用特定IP地址或您的公共IP地址(如果没有提供)测试与ip-api.com API的连接。
要使用此命令,请运行以下Artisan命令
php artisan ip-api:connection {ip?}
{ip}
(可选):要测试的IP地址。如果没有提供,则命令将使用您的公共IP地址。
该命令将显示从ip-api.com API获取的提供IP地址的详细信息。
示例
以下是一个使用ip-api:connection
命令的示例
php artisan ip-api:connection 188.216.103.93
这将测试指定IP地址与ip-api.com API的连接,并显示获取的详细信息。
如果没有提供IP地址,则命令将自动使用您的公共IP地址
php artisan ip-api:connection
异常
IpApi
类可能抛出以下异常
Exception
:如果提供的IP地址无效或保留。RequestException
:如果在制作API请求时发生错误。
许可
IpApi
包是开源软件,许可协议为MIT License。您可以免费使用和修改它,以满足您的需求。