xetaio / xetaravel-iptraceable
A simple package that update an IP field when the user login into the application.
Requires
- php: ^8.3
- illuminate/auth: ^13.0
- illuminate/contracts: ^13.0
- illuminate/database: ^13.0
- illuminate/http: ^13.0
- illuminate/support: ^13.0
- nesbot/carbon: ^3.0
Requires (Dev)
- orchestra/testbench: ^11.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
This package is auto-updated.
Last update: 2026-04-24 11:44:10 UTC
README
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.