kielabokkie/laravel-ipdata

Laravel 对 kielabokkie/ipdata-php 的封装

0.2.1 2018-06-19 00:07 UTC

This package is auto-updated.

Last update: 2024-09-10 15:18:25 UTC


README

Author Packagist Version Software License

Laravel 对 kielabokkie/ipdata-php 包的封装,该包通过 ipdata.co API 获取 IP 地址信息。

先决条件

Ipdata 提供免费计划,每天可请求 1,500 次,如果需要更多,则提供付费计划。所有计划都需要 API 密钥,您需要在他们的 网站 上注册以获取一个。

安装

通过 composer 安装包

composer require kielabokkie/laravel-ipdata

如果您使用 Laravel 5.4 或更低版本,或者不使用 Laravel 的自动发现功能,您应该在您的 config/app.php 文件中添加以下内容

'providers' => [
    // ...
    Kielabokkie\LaravelIpdata\IpdataServiceProvider::class,
]

'aliases' => [
    // ...
    'Ipdata' => Kielabokkie\LaravelIpdata\Facades\Ipdata::class,
)

配置

将以下内容添加到您的 config/services.php 文件中

// ...
'ipdata' => [
    'api_key' => env('IPDATA_API_KEY'),
],

更新您的 .env 文件并输入从 Ipdata 获得的 API 密钥

IPDATA_API_KEY=youkeyhere

用法

查找调用 IP 地址

use Kielabokkie\LaravelIpdata\Facades\Ipdata;

$res = Ipdata::lookup();

查找特定 IP 地址

use Kielabokkie\LaravelIpdata\Facades\Ipdata;

$res = Ipdata::lookup('1.1.1.1');

Ipdata API 将返回以下数据

{
  "ip": "1.1.1.1",
  "is_eu": false,
  "city": "Research",
  "region": "Victoria",
  "region_code": "VIC",
  "country_name": "Australia",
  "country_code": "AU",
  "continent_name": "Oceania",
  "continent_code": "OC",
  "latitude": -37.7,
  "longitude": 145.1833,
  "asn": "AS13335",
  "organisation": "Cloudflare Inc",
  "postal": "3095",
  "calling_code": "61",
  "flag": "https://ipdata.co/flags/au.png",
  "emoji_flag": "🇦🇺",
  "emoji_unicode": "U+1F1E6 U+1F1FA",
  "languages": [
    {
      "name": "English",
      "native": "English"
    }
  ],
  "currency": {
    "name": "Australian Dollar",
    "code": "AUD",
    "symbol": "AU$",
    "native": "$",
    "plural": "Australian dollars"
  },
  "time_zone": {
    "name": "Australia/Melbourne",
    "abbr": "AEST",
    "offset": "+1000",
    "is_dst": false,
    "current_time": "2018-06-20T11:41:23.068040+10:00"
  },
  "threat": {
    "is_tor": false,
    "is_proxy": false,
    "is_anonymous": false,
    "is_known_attacker": false,
    "is_known_abuser": false,
    "is_threat": false,
    "is_bogon": false
  }
}

此库将通过 json_decode 运行响应,为您提供易于工作的对象,例如

echo $res->country_name; // Australia
echo $res->flag; // https://ipdata.co/flags/au.png