psicologiaymente/cloudflare-geoip

此包已被放弃,不再维护。作者建议使用 palauaandsons/cloudflare-geoip 包。

基于 Laravel 的 Cloudflare GeoIP 辅助工具

1.2.1 2023-11-15 06:50 UTC

This package is auto-updated.

Last update: 2024-05-15 03:26:50 UTC


README

根据 Cloudflare 头部获取访客的地理位置。

安装

composer require psicologiaymente/cloudflare-geoip

配置

运行以下命令以发布配置。请确保修改配置文件,特别是当 Cloudflare 头部不存在时要使用的默认位置。

php artisan vendor:publish --tag=cloudflare-geoip-config

用法

<?php

namespace App\Http\Controllers;

use PsicologiaYMente\CloudflareGeoIp\Facades\GeoIp;
use App\Models\Users;

class RegisterController extends Controller {
    public function __invoke(): User
    {
        $location = GeoIp::getLocation();

        return User::create([
            'register_ip' => $location->ip
        ]);
    }
}

位置对象

\PsicologiaYMente\CloudflareGeoIp\Location {
    +ip: "192.182.88.29"
    +city: "New Haven"
    +country: "US"
    +continent: "NA"
    +latitude: 41.31
    +longitude: -72.92
    +postalCode: "06510"
    +region: "Connecticut"
    +regionCode: "CT"
    +timezone: "America/New_York"
    // pseudo fields
    +iso_code: 'US' // same as country
    +isoCode: 'US' // same as country
    +state: 'CT' // same as regionCode
    +state_name: 'Connecticut' // same as region
    +stateName: 'Connecticut' // same as region
    +postal_code: '06510' // same as postal_code
    +lat: '41.31' // same as latitude
    +lon: -72.92 // same as longitude

    +toArray(): array
}