xetaio/xetaravel-iptraceable

A simple package that update an IP field when the user login into the application.

Maintainers

Package info

github.com/XetaIO/Xetaravel-IpTraceable

pkg:composer/xetaio/xetaravel-iptraceable

Statistics

Installs: 4 544

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

13.0.0 2026-04-24 11:42 UTC

This package is auto-updated.

Last update: 2026-04-24 11:44:10 UTC


README

Latest Stable Version Total Downloads Tests Laravel 13+ License

A simple Laravel package that tracks the IP address of a user on login. Also handles the remember_me token via middleware.

Requirements

  • PHP >= 8.3
  • Laravel >= 13.0

Installation

composer require xetaio/xetaravel-iptraceable

Service Provider

Laravel auto-discovers the service provider. If you have disabled auto-discovery, register it manually in bootstrap/providers.php:

return [
    // ...
    Xetaio\IpTraceable\Providers\IpTraceableServiceProvider::class,
];

Middleware (remember me support)

The package ships with an optional middleware that updates the IP on requests authenticated via a remember me token. Register it in bootstrap/app.php after StartSession:

->withMiddleware(function (Middleware $middleware) {
    $middleware->web(append: [
        \Xetaio\IpTraceable\Http\Middleware\IpTraceable::class,
    ]);
})

Note: The middleware must be registered after Illuminate\Session\Middleware\StartSession.

Configuration

Publish the config file:

php artisan vendor:publish --provider="Xetaio\IpTraceable\Providers\IpTraceableServiceProvider" --tag=config

Available options in config/iptraceable.php:

return [
    'fields' => [
        'last_login_ip' => 'last_login_ip',   // Column name for the IP address
        'last_login_date' => null,               // Set a column name to enable, or null to disable
    ],
];

Database

Add the required columns to your users table:

$table->ipAddress('last_login_ip')->nullable();
$table->dateTime('last_login_date')->nullable(); // Optional — enable in config

How it works

Trigger Mechanism
Standard login IpTraceableSubscriber listens to Illuminate\Auth\Events\Login and updates the IP automatically
Remember me token IpTraceable middleware checks viaRemember() on each request and updates the IP if needed

Testing

composer test

Contributing

Pull requests are welcome.