drag-and-publish/ip2location-sync

适用于 Laravel 的 Ip2Location 数据库同步包

v1.0.0 2024-01-28 01:29 UTC

This package is not auto-updated.

Last update: 2024-09-23 02:56:27 UTC


README

Ip2Location 数据库同步包,适用于 Laravel 应用。此包适用于 DB3LITECSV,需要数据库来存储数据。

docker-ip2location-mysql 和此包之间的差异

  • 官方 Docker 镜像 docker-ip2location-mysql 提供了带有数据的数据库,但没有自定义同步选项。此包提供了自定义同步选项。
  • 它不是为复杂用例设计的。如果您需要更多功能,请使用官方 Docker 镜像。
  • 有时官方 Docker 镜像会导致配额超出错误。这可能会破坏您的应用程序。此包使用缓存来防止此错误。

安装

composer require drag-and-publish/ip2location-sync

用法

在控制台运行所需的作业。

<?php

namespace App\Console;

use DragAndPublish\Ip2locationSync\Jobs\Ip2LocationDownloadJob;
use DragAndPublish\Ip2locationSync\Jobs\Ip2LocationSyncJob;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
    /**
     * Define the application's command schedule.
     */
    protected function schedule(Schedule $schedule): void
    {
        $schedule->job(Ip2LocationDownloadJob::class)->dailyAt('00:00');
        $schedule->job(Ip2LocationSyncJob::class)->dailyAt('00:00');
    }
}

环境变量

.env 文件中定义您的环境变量。

# ip2location
IP2LOCATION_TOKEN={YOUR_TOKEN}
IP2LOCATION_IP_TYPE=IPV6
IP2LOCATION_MYSQL_PORT=1010
IP2LOCATION_MYSQL_HOST=127.0.0.1
IP2LOCATION_MYSQL_DBNAME=ip2location_database
IP2LOCATION_MYSQL_USERNAME=admin
IP2LOCATION_MYSQL_PASSWORD=secret