xetaio/xetaravel-iptraceable
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.
Related Packages
Laravel Auth Checker allows you to log users authentication, devices authenticat...
Simple way to determine real client IP and country when using CloudFlare