el-factory/ip-api

一个简单的Laravel扩展包,用于从ip-api.com获取IP地址信息

v1.0.1 2023-07-22 16:31 UTC

This package is auto-updated.

Last update: 2024-09-21 17:16:29 UTC


README

Latest Version on Packagist Total Downloads Repo Size Repo Size

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。您可以免费使用和修改它,以满足您的需求。