backtheweb/laravel-geoip

Laravel MaxMind GeoIp

v0.0.1 2023-02-22 21:48 UTC

This package is auto-updated.

Last update: 2024-09-02 11:19:30 UTC


README

可用服务

安装

composer require backtheweb/laravel-geoip
 
php artisan vendor:publish --provider="Backtheweb\GeoIp\GeoIpServiceProvider" --tag="config"

在配置文件夹中编辑geoip.php或设置环境变量。

return [

    'default' => env('GEO_IP_SERVICE', 'maxmind'),
    'services' => [
        'maxmind' => [
            'user' => env('GEO_IP_MAXMIND_USER_ID'),
            'key'  => env('GEO_IP_MAXMIND_LICENSE_KEY'),
            'database' => env('GEO_IP_MAXMIND_DATABASE', 'country'),
        ],
        'hackertarget' => [],
        'ipinfoio'     => [
            'token' => env('GEO_IP_IPINFOIO_TOKEN'),
        ],
    ],

    'test' => [
        'ip'      => env('GEO_IP_TEST_IP'),
        'city'    => env('GEO_IP_TEST_CITY'),
        'country' => env('GEO_IP_TEST_COUNTRY'),
    ]
];

用法

use Backtheweb\GeoIp\Facades\GeoIp
$location = GeoIp::location('172.105.90.46');
$location->toArray(); 

$location->toArray()的示例输出

array [ 
  "ip" => "172.105.90.46"
  "hostname" => null
  "country" => "Germany"
  "country_code" => "DE"
  "state" => "Hesse"
  "city" => "Frankfurt am Main"
  "postal_code" => "60313"
  "lat" => 50.1188
  "lng" => 8.6843
  "timezone" => "Europe/Berlin"
  "provider" => "Linode"
]

可用响应属性

MaxMind**Hacker TargetIpInfo.io
ip
hostname
country
country_code
postal_code
lat
lng
timezone
provider

** 使用洞察数据库

测试

创建包含以下内容的.env文件

GEO_IP_TEST_IP=172.105.90.46
GEO_IP_TEST_CITY="Hesse"
GEO_IP_TEST_COUNTRY=Germany 

并运行

composer test